解释都在注释中
基本概念以及用法
package Demo16Lambda;
public class lambda {public static void main(String[] args) {Comparator comparator = new mycompartor();
Comparator comparator1 =new Comparator() {@Overridepublic int compartoor(int a, int b) {return a-b;}};Comparator comparator2 = ((a, b) -> a-b);}
}class mycompartor implements Comparator{@Overridepublic int compartoor(int a, int b) {return a-b;}public void shixain(){System.out.println("this is a shixian");}
}@FunctionalInterface
interface Comparator{int compartoor(int a,int b);default void jiekou(){System.out.println("this is a jiekou");}
}
定义六个接口,表示出具体用法

实现
package Demo16Lambda.syntax;import Demo16Lambda.interfaces.*;public class Syntax1 {public static void main(String[] args) {LambdaNoneReturnNoneParamter lambda1 =()->{System.out.println("hello");};lambda1.test();LambdaNoneReturnSingleParamter lambda2=(int a)->{System.out.println(a);};lambda2.test(10);LambdaNoneReturnMutipleParameter lambda3=(int a ,int b)->{System.out.println(a+b);};lambda3.test(12,55);LambdaSingleReturnNoneParameter lambda4=()->{System.out.println("lambda4");return 100;};int test = lambda4.test();System.out.println(test);LambdaSingleReturnSingleParameter lambda5=(int a )->{System.out.println("lambda5");return a*2;};int test1 = lambda5.test(500);System.out.println(test1);LambdaSingleReturnMutipleParameter lambda6=(int a,int b )->{return a*2+b*4;};int test2 = lambda6.test(500,100);System.out.println(test2);}}
简写
package Demo16Lambda.syntax;import Demo16Lambda.interfaces.*;
public class Syntax2 {public static void main(String[] args) {LambdaSingleReturnMutipleParameter lambda1= (a,b)->{System.out.println("xixixi");return a*2+5*b;};System.out.println(lambda1.test(12,55));LambdaSingleReturnSingleParameter lambda2 = a -> {System.out.println("hshhh");return a*5;};System.out.println(lambda2.test(44));LambdaNoneReturnSingleParamter lambd3= a ->System.out.println("asdasd");LambdaSingleReturnNoneParameter lambda4 = () ->10;}
}
简写2
package Demo16Lambda.syntax;import Demo16Lambda.interfaces.LambdaSingleReturnSingleParameter;public class Syntax3 {public static void main(String[] args) {LambdaSingleReturnSingleParameter lambda1 =a -> change(a);LambdaSingleReturnSingleParameter lambda2 =Syntax3::change;}private static int change(int a) {return a*2;}
}
构造方法的引用
package Demo16Lambda.syntax;import Demo16Lambda.data.Person;
public class Syntax4 {public static void main(String[] args) {PersonCreater personCreater =()->new Person();PersonCreater creater= Person::new;Person a= creater.getPerson();PersonCreater2 creater2 =Person::new;Person b = creater2.getPerson("haha",20);}
}interface PersonCreater{Person getPerson();
}
interface PersonCreater2{Person getPerson(String name,int age);
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!