您的位置:首页 > 编程语言 > Java开发

简单实用java8——lambda表达式

2018-08-13 16:13 666 查看

lambda表达式是java8中新加入的一个特性,可以在创建匿名内部类时使用,我们可以用lambda表达式完成匿名内部类时创建,例如开启新的线程以及实现一个监听器,下面将对比匿名内部类和lambda的写法。

我们可以通过创建一个类实现Runnable接口或是继承Thread类

[code]	public static void main(String args[]){
new Thread(new myThread()).start();
new myThread1().start();
}

public static class myThread implements Runnable{

@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("Create new Thread");
}
}

public static class myThread1 extends Thread{
public void run(){
System.out.println("Create new Thread");
}
}

也可以使用匿名内部类创建新线程

[code]Thread t=new Thread(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("Create new Thread");
}
});

 使用Lambda表达式,如果只有一句代码,可以省略外部的大括号

Lambda相当于我们省略了new这一个步骤,程序根据类型自动推断出应该实现的接口,我们只需实现其中的抽象方法,和匿名内部类几乎等价。

[code]Thread t1=new Thread(()->System.out.println("Create new Thread"));
Thread t2 = new Thread(()->{System.out.println("Create new Thread");});

自定义类并使用lambda表达式实例化

[code]public interface Calculator{
public void add(int a,int b);
}

public static void main(String args[]){
Calculator calculator=(int a,int b)->{
System.out.print(a+b);
};
calculator.add(2, 3);
}

如果接口中有多个方法,不能通过lambda表达式实例化

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: