// Java 8 新特性示例代码
// 1. Lambda 表达式
// 传统方式:使用匿名内部类
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Button clicked!");
}
});
// 使用 Lambda 表达式
button.addActionListener(e -> System.out.println("Button clicked!"));
// 2. 方法引用
// 传统方式
List<String> names = Arrays.asList("John", "Jane", "Jim");
names.sort(new Comparator<String>() {
@Override
public int compare(String a, String b) {
return a.compareTo(b);
}
});
// 使用方法引用
names.sort(String::compareTo);
// 3. 默认方法和静态方法在接口中
interface MyInterface {
// 默认方法
default void show() {
System.out.println("Default method in interface");
}
// 静态方法
static void display() {
System.out.println("Static method in interface");
}
}
class MyClass implements MyInterface {
// 不需要实现 show 方法,因为它是默认方法
}
MyClass obj = new MyClass();
obj.show(); // 调用默认方法
MyInterface.display(); // 调用静态方法
// 4. Stream API
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 过滤、映射和收集操作
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0) // 过滤偶数
.map(n -> n * 2) // 映射为原来的两倍
.collect(Collectors.toList()); // 收集结果到列表
System.out.println(evenNumbers); // 输出 [4, 8, 12, 16, 20]
// 5. Optional 类
Optional<String> optional = Optional.of("Hello");
optional.ifPresent(System.out::println); // 如果有值则打印
Optional<String> emptyOptional = Optional.empty();
String defaultValue = emptyOptional.orElse("Default Value"); // 如果为空则返回默认值
System.out.println(defaultValue); // 输出 Default Value
null
值带来的空指针异常问题,提供了更安全的处理方式。上一篇:grpc java
下一篇:java 获取时间
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站