Thread-线程Lambda


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();
	}
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM