标准格式:1.一些参数 2.一个箭头 3.一段代码
在抽象中的Lambda
(参数列表)->{重写方法一段代码}
():接口中抽象方法的参数列表,没有参数就空着,有参数就写出参数,每个参数之间要隔开。
2.Lambda可以省略的内容
1.参数列表:括号中参数的数据类型,可以省略不写。
2.参数列表:括号中参数只有一个名,那么类型和()都可以申略不写。
3.{一段代码}:如果{}中的代码只有一行,无论是否有返回值,都可以申略{},(),return,分号,一旦使用,都要一起删除。
/**
*
* @author jianyeli
*/
public class ThreadLambda implements Runnable {
@Override
public void run() {
System.out.println("线程执行了"+Thread.currentThread().getName());
}
}
/**
*
* @author jianyeli
*/
public class Lambda1Test {
public static void main(String[] args) {
ThreadLambda t1 = new ThreadLambda();
Thread t2 = new Thread(t1);
t2.start();
//使用匿名内部类的方式创建多线程
new Thread(new Runnable(){
@Override
public void run(){
System.out.println("线程执行了"+Thread.currentThread().getName());
}
}).start();
//使用Lambda表达式创建多线程
new Thread(()->{
System.out.println("线程执行了"+Thread.currentThread().getName());
}).start();
}
}
/**
*
* @author jianyeli
*/
public interface Cook {
public abstract void makefood();
}
/**
*
* @author jianyeli
*/
public class Democook {
public static void main(String[] args) {
//使用匿名内部类简化代码
invoidCook(new Cook(){
@Override
public void makefood() {
System.out.println("做好饭了");
}
});
//使用Lambda表达式简化代码
invoidCook(()->{
System.out.println("做好饭了");
});
}
public static void invoidCook(Cook cook){
cook.makefood();
}
}