首页 > 编程语言 > 详细

Thread-线程Lambda

时间:2020-04-11 13:00:05      阅读:69      评论:0      收藏:0      [点我收藏+]

LambdaThread-简化代码

public class LambdaThread {
	static class Test implements Runnable{
		//静态内部类
		public void run() {
			for(int i=0;i<5;i++) {
				System.out.println("静态内部类");
			}
			System.out.println("-------------");
		}
		
	}
	public static void main(String[] args) {
		new Thread(new Test()).start();
		//局部内部类
		class Test2 implements Runnable{
			public void run() {
				for(int i=0;i<5;i++) {
					System.out.println("局部内部类");
				}
				System.out.println("-------------");
			}
		}
		new Thread(new Test2()).start();
		
		//匿名内部类
		new Thread(new Runnable(){
			public void run() {
				for(int i=0;i<5;i++) {
					System.out.println("匿名内部类");
				}
				System.out.println("-------------");
			}
		}).start();
		
		//jdk8 简化后 lambda
		new Thread(()->{
			for(int i=0;i<5;i++)
				System.out.println("简化后");
		}).start();
	}
}

推导Lambda

public class Lambda {
	static class Test2 implements NewLambda{
		public void lambda() {
			System.out.println("推导Lambda二:静态内部类");
		}
	}
	public static void main(String[] args) {
		class Test3 implements NewLambda{
			public void lambda() {
				System.out.println("推导Lambda四:方法内部类");
			}
		}
		//外部类
		NewLambda nl = new Test();
		nl.lambda();
		//静态内部类
		nl = new Test2();
		nl.lambda();
		//匿名内部类
		nl = ()->{
			System.out.println("推导Lambda三:匿名内部类");
		};
		nl.lambda();
		//方法内部类
		nl = new Test3();
		nl.lambda();
	}
}

interface NewLambda{
	void lambda();
}
class Test implements NewLambda{
	public void lambda() {
		System.out.println("推导Lambda一");
	}
}

参数

public class LambdaTest1 {
	public static void main(String[] args) {
		Person p = (String name)->{
			System.out.println(name);
		};
		p.data("张三");
		//简化
		p = (name)->System.out.println(name);
		p.data("李四");
		
		p = name->System.out.println(name);
		p.data("王五");
	}
}
interface Person{
	void data(String name);
}

参数 + 返回值

public class LambdaTest2 {
	public static void main(String[] args) {
		Calculator c = (int a,int b)->{
			return a+b;
		};
		System.out.println(c.add(5, 3));
		
		c = (a,b)->{
			return a+b;
		};
		System.out.println(c.add(10, 4));
		
		c = (a,b)->a+b;
		System.out.println(c.add(20, 10));
	}
}

interface Calculator {
	int add(int a, int b);
}

案例:简化Thread

public class LambdaTest3 {
	public static void main(String[] args) {
		new Thread(()->{
			for(int i=0;i<5;i++)
			System.out.println("学习lambda");
		}).start();
		
		new Thread(()->System.out.println("实现简化线程")).start();
	}
}

Thread-线程Lambda

原文:https://www.cnblogs.com/xiaokw/p/12678788.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!