package Demo05; public class Demo02Lambda { public static void main(String[] args) { //使用的是匿名内部类方法 new Thread(new Runnable() { //因为这是一个匿名内部类所以可以使用接口来接收他 @Override public void run() { System.out.println(Thread.currentThread().getName() + "新线程创建了"); } }).start(); //使用Lambda表达式,实现多线程 (一个括号一个箭头一些代码组成Lambda表达式) new Thread(()-> { System.out.println(Thread.currentThread().getName() + "新线程创建了"); } ).start(); } }
匿名内部类的好处和弊端
匿名内部类可以帮我们省去实现类的定义另一方面有点复杂
仔细分析上面代码段中匿名内部类的代码 Runnable接口其实只有一个run方法的定义
public abstract void run();
run方法无参数 无返回值 只有方法体
同样的语义体现在Lambda语法中更加简单
()->{ System.out.println(Thread.currentThread().getName() + "新线程创建了"); }
1.前面的小括号代表run方法的参数这里是无所以空着,代表不需要任何条件
2.中间的一个箭头代表将前面的参数传递给后面的代码
3.后面的输出语句即业务逻辑代码
Lambda表达式的标准格式
Lambda表达式的标准格式 由三部分组成 1、一些参数 2、一个箭头 3、一段代码 格式 (参数列表)->{一些重写方法的代码} 解释说明格式 ():接口中抽象方法的参数列表,没有参数就空着,有参数就写出参数多个参数用逗号分隔 -> :箭头是传递的意思,把参数传递给方法体{} {}:重写接口抽象方法的方法体
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)