Lambda表达式

1、lambda :实现函数式接口,并创建对象(匿名内部类的简化写法)
2、语法:
接口名引用=(形参列表)->{
//方法实现
};
->左侧:小括号里指定方法执行所有要的形参
->右侧:花括号中定义方法的实现
注:使用1ambda实现接口,接口中只能有一一个抽象方法
●使用细节:如果方法实现只有- -行代码, }可以省略
●有参无返回值的方法:将方法覆盖后的参数加入lambda表达式中->前的小括号里
。使用细节:Lambda表示式中参数的数据类型可以省略,因为编译器可以进行数据类型推断
。使用细节:L ambda表示式中参数只有一一个时,可以省略数据类型+()
●有参有返回值:只需要在方法实现中正常添加return语句就好
。使用细节:当方法实现中只有一条返回语句时 ,省略{}+return;

package testlambda;

public class TestLambda1 {

	public static void main(String[] args) {
		
//		class ImplA implements IA{
//			public void ma() {
//				System.out.println("ma is invoke~~~");
//			}
//		}
//		IA ia = new ImplA();
//		ia.ma();
		
//		IA ia=new IA(){
//			public void ma() {
//				System.out.println("ma() is invoke~~~");
//			}
//		};
//		ia.ma();
		//无参无返回值的方法
		IA ia=()->{System.out.println("ma() is invoke~~~");};
		ia.ma();
		//使用细节,如果方法实现只有一行代码,{}可以省略
		IA ia2=()->System.out.println("ma() is invoke!!!");
		ia2.ma();
		
		
	}

}
interface IA{
	void ma();
}


package test;

import java.net.InterfaceAddress;

public class TestLambda1 {

	public static void main(String[] args) {
		//IA接口的实现类--局部内部类
//		class ImplA implements IA{
//			public void ma() {
//				System.out.println("ma() is invoke~~~~");
//			}
//		}
//		ImplA a = new ImplA();
		//IA接口的实现类--匿名内部类
//		IA ia=new IA() {
//			public void ma() {
//				System.out.println("ma() is invoke~~~~");
//			}
//		};
//		ia.ma();
		//IA接口的实现类--lambda表达式
		IA ia=()->{
			System.out.println("ma() is invoke~~~~");
		};
		ia.ma();
		//使用细节
		IA ia1=()->System.out.println("ma() is invoke~~~~");;
		ia1.ma();
		//有参
		IB ib=(int a,double b)->{
			System.out.println(a+b);
		};
		ib.mb(1, 3.5);
		//使用细节
		IB ib1=(a,b)->{
			System.out.println(a+b);
		};
		ib1.mb(1, 3.5);
		IC ic1=a->{
			System.out.println(a);
		};
		ic1.mc(1);
		//有返回值
		ID id=(a,b)->{
			return a+b;
		};
		System.out.println(id.md(1, 2)); 
		ID id1=(a,b)->a+b;
		System.out.println(id1.md(1, 5));
	}

}
interface IA{
	void ma();
}
/*IA接口普通实现类
 * class ImplA implements IA{ public void ma() {
 * System.out.println("ma() is invoke~~~~"); } }
 */
interface IB{
	void mb(int a,double b);
}
interface IC{
	void mc(int a);
}
interface ID{
	int md(int a,int b);
}





展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读