lamdba表达式

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。lamdba表达式,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

lamdba表达式是为了避免匿名内部类定义过多

为什么要使用lambda表达式

  1. 避免匿名内部类定义过多
  2. 可以让你的代码看起来很简洁
  3. 去掉了一堆没有意义的代码,只留下核心的逻辑。
package com.xh.Thread;

/**
 * lamdba 表达式事实上是内部接口
 * 
 */
public class LamdbaTest {
	//3,定义一个静态内部类 
	static class Like2 implements Ilike{

		@Override
		public void lamdba() {
			System.out.println("I like lamdba2");
		}
		
	}
	public static void main(String[] args) {
		Ilike ilike = new Like();
		ilike.lamdba();
		
		ilike = new Like2();
		ilike.lamdba();
		
		
		//4 局部内部类
		class Like3 implements Ilike{

			@Override
			public void lamdba() {
				System.out.println("I like lamdba3");
			}
			
		}
		ilike = new Like3();
		ilike.lamdba();
		
		//5匿名内部类
		ilike = new Ilike() {
			@Override
			public void lamdba() {
				System.out.println("I like lamdba4");
			}
		};
		ilike.lamdba();
		
		//6用lamdba简化  对比一下省略部分代码
		ilike = ()->{
			System.out.println("I like lamdba5");
		};
		ilike.lamdba();
	}
}

//定义一个函数接口
interface Ilike{
	void lamdba();
}

//实现类
class Like implements Ilike{
	@Override
	public void lamdba() {
		System.out.println("I  Like  lamdba ");
	}
}

在这里插入图片描述
说明lamdba表达式在此发挥了作用。
ilike = ()->{
System.out.println(“I like lamdba5”);
}

package com.xh.Thread;

//局部内简化变成匿名内部类
public class LamdaTest02 {
	
	//定义一个全局内部类
	static class Face1 implements IFace{
		@Override
		public void face(int a) {
			System.out.println("也就是吧外部类移动到外部类-->" + a);
		}
	}
	
	public static void main(String[] args) {
		IFace iFace = new Face();
		iFace.face(2);
		
		Face1 face1 = new Face1();
		face1.face(111);
		
		//来一个局部内部类
		class Face2 implements IFace{
			@Override
			public void face(int a) {
				System.out.println("我是局部内部类-->" +a );
			}
		}
		Face2 face2 = new Face2();
		face2.face(110);
		
		//在一步简化变成匿名内部类
		iFace =(int a)-> {
			System.out.println("我是lamda1号-->" +a);
		
		};
		
/*		//简化1,参数类型
		iFace =(a)-> {
			System.out.println("我是lamda1号-->" +a);
		};
		
		iFace =(a,b)-> {
			System.out.println("我是lamda1号-->" +a);
			System.out.println("我是lamda2号-->" +a;)
		};
		
		//简化2.简化括号
		iFace = a-> {
			System.out.println("我是lamda1号-->" +a);
		};*/
		
		//简化3,去掉花括号
		iFace = a-> 
			System.out.println("我是lamda2号-->" +a);
			//总结 
			//lambda 表达是只能有一行代码的情况下才能简化为一行,如果有多行,那么就用代码块包裹
			//提前需要接口为函数式接口
			//多个参数也可以去掉参数类型,要去掉就都要去掉,必须加上括号
		iFace.face(520);
		}
	}

//重要。这个必须要有
interface IFace{
	void face(int a);
	// void face (int a,int b);
}


class Face implements IFace{
	@Override
	public void face(int a) {
		System.out.println("注意实现接口必须要重写接口里边的方法 --->" + a);
	}
	
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/198030.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!