Java - lambda
函数式接口(Function Interface): 只包含一个抽象方法的接口
(parameters) -> expression
(parameters) -> {statements;}
package lambda;
public class LambdaDemo {
/**
* 1. 通过实现类调用
*/
public static void f1() {
ILike l = new Like();
l.like();
}
static class Like2 implements ILike {
@Override
public void like() {
System.out.println("静态内部类调用");
}
}
/**
* 2. 静态内部类
*/
public static void f2() {
ILike l = new Like2();
l.like();
}
/**
* 3. 局部内部类
*/
public static void f3() {
class Like3 implements ILike {
@Override
public void like() {
System.out.println("局部内部类调用");
}
}
ILike l = new Like3();
l.like();
}
/**
* 4. 匿名内部类:没有类名; 必须继承一个父类或实现一个接口
*/
public static void f4() {
ILike l = new ILike() {
@Override
public void like() {
System.out.println("匿名内部类调用");
}
};
l.like();
}
/**
* 4. Lambda 简化
*/
public static void f5() {
ILike l = () -> {
System.out.println("Lambda 调用");
};
l.like();
}
/**
* 5. Lambda 只有
*/
public static void f6() {
ILike l = () -> System.out.println("Lambda pro 调用");
l.like();
}
/**
* 5. Lambda runnable
*/
public static void f7() {
new Thread(() -> System.out.println("runnable test1")).start();
}
public static void main(String[] args) {
f1();
f2();
f3();
f4();
f5();
f6();
f7();
}
}
//实现类调用
class Like implements ILike {
@Override
public void like() {
System.out.println("test lambda");
}
}
// 定义一个函数式接口
interface ILike {
void like();
}