public class LambdaTest {
public static void main(String[] arg){
// lambda是一个匿名函数
// ()表示参数
// {}表示方法体
// -> 表示lambda运算符
//平时写法
LambdaNNParamter lambd = new LambdaNNParamter() {
@Override
public void test() {
System.out.println("hello world");
}
};
lambd.test();
//lambda表达式
LambdaNNParamter lambda = () ->{
System.out.println("hello word");
};
lambda.test();
/**无参无返回值 在没有方法体的时候可以不用写{}*/
LambdaNNParamter lambda1 = () -> System.out.println("hello word");
lambda1.test();
/**无参有返回值*/
LambdaNMParamter lambda2 = () -> 1;
System.out.println(lambda2.test());
/**有参有返回值 有且只有一个参数的时候可有不用写()*/
LambdaMMParamter lambda3 = a -> a*2;
System.out.println(lambda3.test(10));
//方法引用:
//可以快速的将一个Lambda表达式的实现指向一个已经实现的方法
//方法隶属者::方法名
/**引用*/
LambdaMMParamter lambda4 = LambdaTest::change;
System.out.println(lambda4.test(10));
}
private static int change(int a){
return a*3;
}
}
执行效果: