6、lamda表达式
作者:互联网
lamda表达式:
1、避免匿名内部类过多
2、让代码简洁
3、去掉没有意义的代码,保留核心逻辑
函数式接口:只包含一个抽象方法,被成为函数式接口
package com.com.test; import jdk.dynalink.beans.StaticClass; /** * 推导lambda表达式 */ public class lambda { public static void main(String[] args) { //接口引用,指向Like类建立的对象 Ilike like = new Like1(); //调用接口实现类lambda方法 like.lambda(); //静态内部类 like = new like2(); //调用静态内部类lambda方法 like.lambda(); //4、局部内部类,在main方法中 class like3 implements Ilike{ @Override public void lambda() { System.out.println("this is lambda4"); } } like = new like3(); //调用局部内部类的lambda方法 like.lambda(); //5、匿名内部类,无类名,必须借助接口或父类实现 like = new Ilike() { @Override public void lambda() { System.out.println("this is lambda5"); } };//分号结尾 like.lambda(); //6、lambda表达式 like = ()->{ System.out.println("this is lambda6"); };//分号结尾 like.lambda(); } //3、静态内部类实现 static class like2 implements Ilike{ @Override public void lambda() { System.out.println("this is lambda3"); } } } //1、定义一个函数式接口 interface Ilike{ //抽象方法没有主体 void lambda(); } //实现接口类 class Like1 implements Ilike{ @Override public void lambda() { System.out.println("this is lambda2"); } }
简化
package com.com.test; /** * 推导lambda表达式 * */ public class lambda2 { public static void main(String[] args) { Ilove love = (int a)->{ System.out.println("this is lambda"+ a); }; love.lambda(520); //简化,取消括号和类型 love = a -> { System.out.println("this is lambda"+ a); }; love.lambda(521); //简化,去掉花括号 love = a -> System.out.println("this is lambda"+ a); love.lambda(1314); /* 1、只有一行代码的时候,才能简化为一行 2、只有函数式接口,才能使用 3、多个参数类型也可以去掉,都去掉,必须加上括号 */ } } //1、定义一个函数式接口 interface Ilove{ //抽象方法没有主体,带参数 void lambda(int a); }
标签:lamda,like,void,System,println,out,表达式,lambda 来源: https://www.cnblogs.com/tfqfdr/p/16482665.html