【JAVA】Lambda接口&函数级接口
2019-06-13 01:19
811 查看
Lambda接口只用于函数级接口中,它常常被用在匿名类中,而
函数级接口————接口里面只有一个函数的接口。
标识接口————接口里面什么函数都没有的接口。
以上只是对相关概念的简述,具体解释要依靠具体代码来讲解:
//函数级接口 interface T1 { void t(); } //有返回类型的函数级接口 interface T2 { //这里面有一个参数a int t(int a); } //有返回类型的函数级接口 interface T3 { //这里面有两个参数a和b int t(int a,int b); } /*匿名类一般是用Lambda接口写的*/ public class Lambda { //Lambda接口只用于函数级接口,那什么又是函数级接口? //函数级接口:接口里面只有一个函数的接口。 //标识接口:接口里面啥函数都没有的接口。 public static void main(String[] args) { // 我们可以先在这里new一个匿名类, // 再在其后面加上一对大括号。 // 若我们要实现该类里面的方法, // 就可以用Alt+Enter键对该方法进行实现。 // 在这里我们再运用多态的原理,直接用T类型引用该子类。 // 因为,我们new的这个对象就是T接口的子类或实现类。 // 如果我们这个接口里有很多函数, // 我们就用List,如果只有一个,我们就不用这么写了。 // T a=new T() { // @Override // public void t() { // System.out.println("Hello"); // } // }; //对于函数级接口,我们不用上述的方法写。 //由于该方法,没有参数,我们就用圆括号来代表参数。 //实现的大括号写到箭头后面,如果大括号里只有一句话, //我们就直接将这句话写进输出里头就可以了。 //箭头为"指向"的意思, //因为这个接口里只定义了一个没参数的函数。 //而要实现的就是这个没参数的函数, //我们的实现就写到箭头后面,直接写输出就行。 //箭头后面是T1接口的子类 T1 a = () -> System.out.println("Hello"); //而我们要调用该方法的话,因为是无参函数。 //我们这里就用t()来代替。 //函数级接口,用Lambda语法代替匿名类,会更紧凑一些。 //但是,该方法只能用于函数级接口 a.t(); //对于无参函数,如果输出语句比较多,就要加大括号。 //箭头后面是T1接口的子类 T1 b = () -> { System.out.println("Hello"); System.out.println("Hello"); }; //对于下面有参数的函数级接口,如果箭头后只有一个语句, //就直接写运算语句,且不用写返回值。 //如果是多行语句就需要加大括号,并且要写返回值。 //如果,函数级接口里面有了一个参数。 //我们就可以直接在等号后面定义一个不重名的参数, //可以不用跟初始定义参数名一样。 //箭头后面是T2接口的子类 T2 c = aa -> aa * 2; System.out.println(c.t(20)); //对大括号里头的程序进行执行之后, //本来是要返回结果的,因为这个函数是返回的, //所以自动就返回结果了。 //如果是多行语句就需要加大括号,并且有要写返回值。 //大括号里即是T2接口的子类 T2 d = cc -> { cc *= 2;cc += 2;return cc; }; System.out.println(d.t(30)); //如果,函数级接口有多个参数 //大括号里即是T3接口的子类 T3 e = (ab, ba) -> ab + ba; System.out.println(e.t(20, 30)); } }
相关文章推荐
- Java8引入函数接口,与原有接口多重继承带来的缺陷——走进Java Lambda(三)
- Java Lambda(语言篇——lambda,方法引用,目标类型,默认方法,函数接口,变量捕获)
- Java lambda和函数接口
- java8 lambda表达式-函数接口
- Java 8 函数接口,陈货翻新,只为Lambda
- Java 8 习惯用语,第 7 部分 函数接口
- [Java 8] (10) 使用Lambda完成函数组合,Map-Reduce以及并行化
- java数组的排序 对象数组的排序 Comoarable接口实现 compareTo函数实现
- java8新特性(一)之Lambda表达式和函数式接口
- Java中线程池、Lambda、函数式接口 D190330
- Java函数接口实现函数组合及装饰器模式
- 《Java 本地接口规范》- JNI 函数(二)
- 12、Java函数接口
- Java 8 Lambda函数编程入门(一)
- Java8新特性——接口变化、Lambda表达式
- Lambda&Java多核编程-5-函数式接口与function包
- JAVA8新特性-Lambda表达式、函数式接口以及方法引用
- java数组的排序 对象数组的排序 Comoarable接口实现 compareTo函数实现
- Java Lambda基础——Function, Consumer, Predicate, Supplier, 及FunctionalInterface接口
- Java8 新语法习惯 (函数接口)