lambda初级

不问归期 提交于 2019-11-29 07:27:41

要求:    1 接口只有1个抽象方法,可以使用 @FunctionalInterface 注解定义,不是必须

     2 lambda三要素

      2.1: () 代表参数列表,类型可有可无,java回自己推算

                   2.2:   ->   连接符

      2.3:    {}    方法体 , 只有1行代码可以省略

              

/** * 无参无返回值函数 */@FunctionalInterfacepublic interface NoParaAndReturn {    //打印参数    void printParameter();}//有参无返回值函数@FunctionalInterfaceinterface HaveParaAndNoReturn {    //打印参数    void printParameter(String color, String inch);}//无参有返回值函数interface NoParaAndHaveReturn {    int printParameter();}//有参数有返回值interface HaveParaAndHaveReturn {    int printParameter(String color, String inch);}
//##############  1 无参无返回值函数   ###################@Testpublic void noParaAndReturn() {    // ######### 内部类实现 #########    NoParaAndReturn innerClass = new NoParaAndReturn() {        @Override        public void printParameter() {            System.out.println("内部类实现:这是一个小米手机");        }    };    innerClass.printParameter();    //######## lamda类实现 #########    NoParaAndReturn lambda = () -> {        System.out.println("lamda类实现:这是一个华为手机");    };    lambda.printParameter();}//##############  2 有参无返回值函数   ###################@Testpublic void haveParaAndNoReturn() {    // ######### 内部类实现 #########    HaveParaAndNoReturn innerClass = new HaveParaAndNoReturn() {        @Override        public void printParameter(String color, String inch) {            System.out.println("内部类实现:华为p30颜色:" + color + "英寸:" + inch);        }    };    innerClass.printParameter("白色", "5.2");    //######## lamda类实现 #########    HaveParaAndNoReturn lambda = (color, inch) -> System.out.println("lamda类实现:华为p30颜色:" + color + "英寸:" + inch);    lambda.printParameter("白色", "5.2");}//##############  3 无参有返回值函数   ###################@Testpublic void noParaAndHaveReturn() {    // ######### 内部类实现 #########    NoParaAndHaveReturn innerClass = new NoParaAndHaveReturn() {        @Override        public int printParameter() {            System.out.println("内部类实现:定义返回值 0");            return 0;        }    };    int innerClassReturn = innerClass.printParameter();    System.out.println("内部类实现输出返回值" + innerClassReturn);    //######## lamda类实现 #########    NoParaAndHaveReturn lambda = () -> {        System.out.println("lamda类实现:定义返回值 0");        return 0;    };    int lambdaReturn = lambda.printParameter();    System.out.println("lamda类实现输出返回值" + lambdaReturn);}//##############  4 有参数有返回值函数   ###################@Testpublic void HaveParaAndHaveReturn() {    // ######### 内部类实现 #########    HaveParaAndHaveReturn innerClass = new HaveParaAndHaveReturn() {        @Override        public int printParameter(String color, String inch) {            System.out.println("内部类实现:定义返回值 0");            return 0;        }    };    int innerClassReturn = innerClass.printParameter("白色", "5.2");    System.out.println("内部类实现输出返回值" + innerClassReturn);    //######## lamda类实现 #########    HaveParaAndHaveReturn lambda = (colar, inch) -> {        System.out.println("lamda类实现:定义返回值 0");        return 0;    };    int lombdaReturn = lambda.printParameter("白色", "5.2");    System.out.println("lamda类实现输出返回值" + lombdaReturn);}
在项目中,new Thread 的时候用到过,还有lambda的foreach,比较常用,,其他的还没有用到

 

 

      

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!