Lambda表达式
作者:互联网
任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口
/* 推导lamda表达式 */ public class D1 { public static void main(String[] args) { user user = new user(); user.lamb(); } } //1定义一个函数式接口 interface Use{ void lamb(); } //2实现类 class user implements Use{ @Override public void lamb() { System.out.println("我最棒"); } }
还可以怎么简化?
静态内部类
可以将实现类放到内部
public class D1 { //3实现类 static class user1 implements Use{ @Override public void lamb1() { System.out.println("我最棒"); } } public static void main(String[] args) { user1 user1 = new user1(); user1.lamb1(); } } //1定义一个函数式接口 interface Use{ void lamb1(); }
局部内部类
public class D1 { public static void main(String[] args) { //3实现类 局部内部类 class user2 implements Use{ @Override public void lamb2() { System.out.println("我最棒"); } } user2 user2 = new user2(); user2.lamb2(); } } //1定义一个函数式接口 interface Use{ void lamb2(); }
匿名内部类
public class D1 { public static void main(String[] args) { //匿名内部类 Use use = new Use() { @Override public void lamb3() { System.out.println("我最棒"); } }; use.lamb3(); } } //1定义一个函数式接口 interface Use{ void lamb3(); }
用lambda简化
interface Use{ void lamb4(); } public class D1 { public static void main(String[] args) { /* Use use = new Use() { @Override public void lamb4() { System.out.println("我最棒"); } }; */ Use use = () -> { System.out.println("我最棒"); }; use.lamb4(); } }
Use use = () -> { System.out.println("我最棒"); };
这种代码的实现是只保留了从lamb4后的()开始保留
也就是下面这些
() { System.out.println("我最棒"); }
和前面的 Use use
Use use=() { System.out.println("我最棒"); }
但需要在()和{之间加一个->
这时一句话需要在末尾加;
Use use = () -> { System.out.println("我最棒"); };
2021-03-13 22:27:33
标签:Use,void,System,最棒,Lambda,public,表达式,out 来源: https://www.cnblogs.com/z-hou/p/14530729.html