// Java 8 特性示例代码
// 1. Lambda 表达式
// Lambda 表达式允许你以更简洁的方式编写匿名函数。
interface Calculator {
int operate(int a, int b);
}
public class LambdaExample {
public static void main(String[] args) {
// 使用匿名内部类
Calculator add = new Calculator() {
@Override
public int operate(int a, int b) {
return a + b;
}
};
System.out.println("Using anonymous inner class: " + add.operate(5, 3));
// 使用 Lambda 表达式
Calculator multiply = (a, b) -> a * b;
System.out.println("Using lambda expression: " + multiply.operate(5, 3));
}
}
// 2. 方法引用
// 方法引用可以让你用更简洁的方式引用现有方法。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class MethodReferenceExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
// 使用 Lambda 表达式
List<String> upperCaseNames = names.stream().map(name -> name.toUpperCase()).collect(Collectors.toList());
System.out.println("Using lambda expression: " + upperCaseNames);
// 使用方法引用
List<String> upperCaseNamesRef = names.stream().map(String::toUpperCase).collect(Collectors.toList());
System.out.println("Using method reference: " + upperCaseNamesRef);
}
}
// 3. Stream API
// Stream API 提供了一种高效且易于使用的接口来处理集合数据。
import java.util.stream.IntStream;
public class StreamExample {
public static void main(String[] args) {
// 计算 1 到 10 的平方和
int sum = IntStream.rangeClosed(1, 10)
.map(n -> n * n)
.sum();
System.out.println("Sum of squares from 1 to 10: " + sum);
}
}
// 4. 默认方法和静态方法在接口中
// Java 8 允许在接口中定义默认方法和静态方法。
interface MyInterface {
default void defaultMethod() {
System.out.println("Default method in interface");
}
static void staticMethod() {
System.out.println("Static method in interface");
}
}
public class InterfaceExample implements MyInterface {
public static void main(String[] args) {
InterfaceExample example = new InterfaceExample();
example.defaultMethod(); // 调用默认方法
MyInterface.staticMethod(); // 调用静态方法
}
}
Calculator 接口的实现可以通过 Lambda 表达式直接完成。String::toUpperCase 直接引用了 String 类的 toUpperCase 方法。IntStream 来计算 1 到 10 的平方和。MyInterface 中的 defaultMethod 和 staticMethod。上一篇:java8 新特性
下一篇:java 语法
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站