Java 8及其后续版本引入了许多实用的新特性,合理使用这些特性可以让代码更加简洁高效:
1. Lambda表达式
Lambda表达式简化了匿名内部类的写法,特别适合于函数式接口的实现。例如:
// 传统写法
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
Collections.sort(names, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
// Lambda写法
names.sort((o1, o2) -> o2.compareTo(o1));
2. Stream API
Stream API提供了强大的集合处理能力,支持链式调用和惰性求值:
List<String> filteredNames = names.stream()
.filter(name -> name.startsWith("A"))
.map(String::toUpperCase)
.collect(Collectors.toList());
3. Optional类
Optional类有效避免空指针异常,使代码更安全:
Optional<String> optionalName = Optional.ofNullable(getName());
optionalName.ifPresent(System.out::println);