lambda表达式学习
2023-12-13 10:27:50
lambda表达式就是对匿名方法的进一步简化?
1.前提
所以你写lambda的时候就不会纠结重写哪一个方法了,避免了歧义,重写唯一的那一个抽象方法。
2.格式
()->{? ????????????????}
3.省略规则
4.注意事项
5.匿名内部类和lambda表达式区别
总体来说lambda表达式可以在单个抽象方法的接口情况下作为一种简单的替代,对于复杂的情况还得用匿名内部类
public interface Inter{
void show();
//void show1();
}
abstract class Animal {
public abstract void method();
}
class Student {
public void study(){
System.out.println("爱生活,爱java");
}
}
public class LambdaDemo{
public static void main(String[] args) {
/*//匿名内部类
useInter(new Inter() {
@Override
public void show() {
System.out.println("接口");
}
});
useAnimal(new Animal() {
@Override
public void method() {
System.out.println("抽象类");
}
});
useStudent(new Student(){
@Override
public void study(){
System.out.println("具体类");
}
});*/
//Lambda
useInter(() -> System.out.println("接口"));
//useAnimal(() -> System.out.println("抽象类"));//不可以
//useStudent(() -> System.out.println("具体类"));//不可以
}
private static void useStudent(Student s){
s.study();
}
private static void useAnimal(Animal a){
a.method();
}
private static void useInter(Inter i){
i.show();
}
}
public interface Inter{
void show();
void show1();
}
public class LambdaDemo{
public static void main(String[] args) {
useInter(new Inter() {
@Override
public void show() {
System.out.println("show");//👈只打印这一个show
}
@Override
public void show1() {
System.out.println("show");
}
});
}
private static void useInter(Inter i){
i.show();
}
}
6.函数式接口
文章来源:https://blog.csdn.net/m0_50973548/article/details/134903415
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!