怎么样创建做零食山楂的网站,定制开发 商城网站 最快,网站建设公司的服务定位,网站开发前端是什么在Java中#xff0c;匿名内部类通常用于创建没有命名类的实例。例如#xff0c;你可能需要创建一个实现了某个接口的匿名类#xff0c;或者在需要重写某个方法时使用它。在Java 8及更高版本中#xff0c;你可以使用Lambda表达式来替代传统的匿名内部类#xff0c;使得代码…在Java中匿名内部类通常用于创建没有命名类的实例。例如你可能需要创建一个实现了某个接口的匿名类或者在需要重写某个方法时使用它。在Java 8及更高版本中你可以使用Lambda表达式来替代传统的匿名内部类使得代码更加简洁和易读。
接口实现 假设你有一个接口Action如下所示
interface Action {void execute();
}使用匿名内部类
Action action new Action() {Overridepublic void execute() {System.out.println(Executing action);}
};转换为Lambda表达式
Action action () - System.out.println(Executing action);单方法的接口Functional Interface 如果你只有一个方法需要实现即Functional Interface可以直接使用Lambda表达式。例如Runnable接口
使用匿名内部类
Runnable runnable new Runnable() {Overridepublic void run() {System.out.println(Running);}
};转换为Lambda表达式 Runnable runnable () - System.out.println(Running);带有参数的方法 如果接口方法带有参数你可以在Lambda表达式中传递参数。例如Consumer接口
使用匿名内部类
ConsumerString consumer new ConsumerString() {Overridepublic void accept(String s) {System.out.println(s);}
};转换为Lambda表达式
ConsumerString consumer s - System.out.println(s);
带有多个抽象方法的接口不适用Lambda 对于包含多个抽象方法的接口你不能直接使用Lambda表达式因为Lambda表达式需要一个目标类型的单一抽象方法SAM。在这种情况下你可以使用匿名内部类或者实现所有方法。