1.Lambda表达式
package lamdba;
public class MyRunnable implements Runnable{
@Override
public void run() {
System.out.println("多线程启动了");
}
}
package lamdba;
public class LamdbaDemo {
public static void main(String[] args) {
//实现类的方式实现需求
/* MyRunnable my = new MyRunnable();
Thread thread = new Thread(new MyRunnable());
thread.start();*/
//匿名内部类的方式改进
/* new Thread(new Runnable() {
@Override
public void run() {
System.out.println("多线程程序启动了");
}
}).start();*/
// Lamdba 方式改进
new Thread (() ->{
System.out.println("多线程程序启动了");
}).start();
}
}
package lamdba;
public interface Eatable {
void eat();
}
package lamdba;
public class EatableDemo {
public static void main(String[] args) {
//匿名内部类实现
/* userEatable(new Eatable(){
@Override
public void eat() {
System.out.println("天天吃苹果");
}
});*/
//Lamdba 方式改进
userEatable(() ->{
System.out.println("天天吃苹果");
});
}
private static void userEatable(Eatable e){
e.eat();
}
}
package lamdba;
public interface Flyable {
public abstract void fly(String s);
}
package lamdba;
public class FlyableDemo {
public static void main(String[] args) {
useFlyable((String s) ->{
System.out.println(s);
System.out.println("万里白云");
});
}
private static void useFlyable(Flyable f){
f.fly("风和日丽");
}
}
输出结果:
风和日丽
万里白云
package lamdba;
public interface Addable {
int add(int x,int y);
}
package lamdba;
public class AddableDemo {
public static void main(String[] args) {
useAddable((int a,int b) ->{
return a+b;
});
}
private static void useAddable(Addable a){
int sum = a.add(20,10);
System.out.println(sum);
}
}
输出结果:
30