Lambda表达式的运用(详尽版)

Lambda表达式是Java JDK8发布的最新特性,它极大地简化了定义匿名内部类时要写的代码,使代码变得更加简洁紧凑。
我们知道定义匿名内部类时要紧跟创建对象,接着要实现接口或重写父类中的抽象方法,例如:

public interface IBlood{
	void cycle();
}
class Body{
	static IBlood blood = new IBlood(){ //从这个大括号到对应的大括号之间就是匿名内部类,它可以直接作为一个整体去使用
		@Override
		public void cycle(){
			System.out.println("血液循环");
		}
	};
————————————————
版权声明:本文为CSDN博主「不动声色的小蜗牛」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45720626/article/details/105186175

这样很麻烦,代码很长,此时就可以用Lambda表达式来简化代码:

class Body{
	interface IBlood{
		void cycle();
	}
	public static void main(String[] args) {
		IBlood blood = () -> System.out.println("血液循环"); //这样一下就简洁了许多
		blood.cycle();//调用
	}
}

Lambda表达式的一些重要特性:

  • 当表达式只有一句时,可以去掉大括号;
  • 不需要声明参数的类型;
    让我们再举几个例子来练习一下:
public interface IComputer {
	void math(int a, int b);
}
public class Test{
	public static void main(String[] args) {
		IComputer addition = (a,b)-> System.out.println(a + b);
		IComputer subtraction = (a,b)-> System.out.println(a - b);
		IComputer multiplication = (a,b)-> System.out.println(a * b);
		IComputer division = (a,b)-> System.out.println(a / b);

		addition.math(7,3);
		subtraction.math(7,3);
		multiplication .math(7,3);
		addition.math(7,3);
	}
}
输出结果:
10
4
21
2
class Test{
	public static void main(String[] args) {
		IGreet greet = n -> System.out.println("hello "+n+"!");
		greet.sayHello(lambda);//调用
	}
	
	interface IGreet{
		void sayHello(String name);
	}
}
输出结果:
hello lambda!

总之,在定义匿名内部类时使用lambda表达式可以让你的代码更加简洁紧凑好看,自己可以试着用用,会给你的代码增色不少哦!

发布了34 篇原创文章 · 获赞 8 · 访问量 703

猜你喜欢

转载自blog.csdn.net/weixin_45720626/article/details/105302439