java8 新特性 分别举个例子
时间: 2023-10-07 16:12:30 浏览: 118
当然,下面是 Java 8 中几个主要特性的具体例子:
1. Lambda 表达式:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(n -> System.out.println(n));
```
上面的代码使用 Lambda 表达式来遍历列表中的元素,并打印每个元素的值。
2. Stream API:
```java
List<String> fruits = Arrays.asList("apple", "banana", "orange", "grape", "watermelon");
List<String> filteredFruits = fruits.stream()
.filter(fruit -> fruit.length() > 5)
.collect(Collectors.toList());
```
上面的代码使用 Stream API 对水果列表进行过滤,只保留长度大于 5 的水果,并将结果收集到一个新的列表中。
3. 接口的默认方法和静态方法:
```java
interface Vehicle {
default void start() {
System.out.println("Starting the vehicle...");
}
static void honk() {
System.out.println("Honking the horn...");
}
}
class Car implements Vehicle {
// 可以不实现 start 方法,使用默认的实现
// 可以直接调用接口的静态方法
public void soundHorn() {
Vehicle.honk();
}
}
```
上面的代码展示了接口中的默认方法和静态方法的使用。`Vehicle` 接口定义了一个默认的 `start` 方法和一个静态的 `honk` 方法。`Car` 类实现了 `Vehicle` 接口,并可以直接调用接口的静态方法。
4. Optional 类:
```java
Optional<String> name = Optional.ofNullable(null);
String result = name.orElse("Unknown");
System.out.println(result);
```
上面的代码使用 Optional 类来包装一个可能为 null 的值。如果值存在,则返回该值,否则返回默认值 "Unknown"。
这些例子只是展示了 Java 8 中一些特性的用法,实际上 Java 8 还有其他很多新特性,如方法引用、新的日期/时间 API 等。你可以根据具体需求来选择使用和深入学习这些特性。
阅读全文