一、Lambda表达式
Java 8中引入了Lambda表达式的概念,这是很重要的一个新特性,它可以使Java中的函数式编程变得更加容易。使用Lambda表达式,可以将函数作为参数传递给其他方法,以及定义用于排序、聚合和其他操作的函数。
public static void main(String[] args) {
List list = Arrays.asList("one", "two", "three", "four", "five");
list.forEach(str -> System.out.println(str));
}在上述代码中,Lambda表达式“str -> System.out.println(str)”用于实现Consumer接口,将每个元素作为参数并对其进行输出。
二、Stream流
Stream可以看作是Java 8中对于集合类的一种更高级的封装,它提供了一种对于集合数据进行非常方便的操作方式。利用Stream,可以轻松地对集合中的数据进行过滤、映射等操作,而这些操作非常适合用于函数式编程。
List<String> list = Arrays.asList("one", "two", "three", "four", "five");
List<String> filteredList = list.stream().filter(s -> s.length() > 3).collect(Collectors.toList());
filteredList.forEach(System.out::println);以上代码使用了Stream流,通过filter()方法对集合中的元素进行筛选,并使用collect()方法将符合条件的元素收集到一个List中,最后使用forEach()方法打印出来。
三、Optional类
Java 8新增了一个Optional类,该类用于解决有可能出现空指针异常的问题。它可以将类型安全地包装在内部,提供了许多有用的方法,包括isPresent()、orElse()、orElseGet()等。
Optional<String> optional = Optional.of("hello");
String str = optional.orElse("world");
System.out.println(str);以上代码中使用Optional.of()方法将一个非空字符串包装起来,并通过orElse()方法,在optional为空时返回一个指定的默认值。
四、日期时间 API
Java 8增强了其日期时间相关API,提供了更好的API支持,并增加了新的Date-Time API。新API提供了新的日期时间类型LocalDate、LocalTime、LocalDateTime、ZonedDateTime等。
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formatDateTime = now.format(formatter);
System.out.println(formatDateTime);以上代码使用了LocalDateTime和DateTimeFormatter类,将当前的时间按照指定格式输出。
五、接口的默认方法和静态方法
Java 8中可以为接口添加默认方法和静态方法,这为接口提供了更多的灵活性。默认方法可以被实现类重写,而静态方法必须由接口名称进行调用。
interface MyInterface {
default void defaultMethod() {
System.out.println("defaultMethod");
}
static void staticMethod() {
System.out.println("staticMethod");
}
}
class MyClass implements MyInterface {
public static void main(String[] args) {
MyInterface.staticMethod();
MyClass myClass = new MyClass();
myClass.defaultMethod();
}
}以上代码中,MyInterface接口中定义了一个默认方法和一个静态方法,MyClass实现了MyInterface接口并对默认方法进行了重写。同时,通过MyInterface.staticMethod()调用接口中的静态方法。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/238524.html
微信扫一扫
支付宝扫一扫