黑马程序员技术交流社区
标题:
【厦门校区JavaEE就业7期-每日总结】Lambda方法引用
[打印本页]
作者:
厦门校区
时间:
2019-5-9 17:25
标题:
【厦门校区JavaEE就业7期-每日总结】Lambda方法引用
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
2.什么情况下可以使用lambda表达式来替换面向对象编码?
3.什么情况下lambda表达式可以简写?
4.方法引用分为哪几种形式?
作者:
刘洪霖
时间:
2019-5-9 20:48
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答:函数式接口是一个接口中且只有一个抽象方法的接口;和接口中的抽象方法个数有关;和接口中的除抽象方法其他方法无关;
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答:1、接口是个函数式接口;2、具有上下文关系;
3.什么情况下lambda表达式可以简写?
答:1、参数类型可以省略,但是有多个参数的情况下,不能只省略一个
;
2、参数有且仅有一个,那么小括号可以省略;
3、代码块的语句只有一条,可以省略大括号和分号,和return关键字
;
4.方法引用分为哪几种形式?
答:分为1、引用类方法(引用类的静态方法);格式
:类名::静态方法
;使用说明:Lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数;
2、引用对象的实例方法(引用类中的成员方法); 格式:
对象::成员方法
;使用说明:Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数;
3、引用类的实例方法(引用类中的成员方法); 格式:
类名::成员方法;
使用说明:Lambda表达式被类的实例方法替代的时候
第一个参数作为调用者
后面的参数全部传递给该方法作为参数
;
4、引用构造器(引用构造方法); 格式:
类名::new
;使用说明:Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数;
作者:
王卓立
时间:
2019-5-9 21:27
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
有且仅有一个抽象类方法的接口,和抽象方法数量有关,和默认方法,静态方法无关
2.什么情况下可以使用lambda表达式来替换面向对象编码?
- 使用Lambda必须要有接口,并且要求接口中有且仅有一个抽象方法(函数式接口)
- 必须有上下文环境,才能推导出Lambda对应的接口
- 根据局部变量的赋值得知Lambda对应的接口
? Runnable r = () -> System.out.println("Lambda表达式");
- 根据调用方法的参数得知Lambda对应的接口
? new Thread(() -> System.out.println("Lambda表达式")).start();
3.什么情况下lambda表达式可以简写?
- 参数类型可以省略。但是有多个参数的情况下,不能只省略一个
- 如果参数有且仅有一个,那么小括号可以省略
- 如果代码块的语句只有一条,可以省略大括号和分号,和return关键字
4.方法引用分为哪几种形式?
引用类的静态方法 类名::静态方法
使用说明
Lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数
引用对象的成员方法 对象::成员方法
使用说明
Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数
引用类的成员方法 类名::成员方法
使用说明
Lambda表达式被类的实例方法替代的时候
第一个参数作为调用者
后面的参数全部传递给该方法作为参数
引用构造方法 类名::new
使用说明
Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数
作者:
刘鸿
时间:
2019-5-9 21:27
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
只有一个抽象方法的接口称为函数式接口。
函数式接口与具体操作有关,与面向对象无关。
2.什么情况下可以使用lambda表达式来替换面向对象编码?
当一个接口内有且仅有一个抽象方法,代码有上下文环境时,可以使用lambda表达式来替换面向对象编码。
3.什么情况下lambda表达式可以简写?
①只有一个参数时,可省略参数两边的“()”。
②参数类型可省略,但所有参数的参数类型要一起省略。
③只有一条方法语句时,可省略return关键字、“;”和方法体两边的“{}”。
4.方法引用分为哪几种形式?
①引用类的静态方法
②引用类的成员方法(当类的对象作为参数传入Lamda表达式中)
③引用对象的成员方法(当对象在Lambda表达式外面时)
④引用类的构造器
作者:
黄孝贵
时间:
2019-5-9 21:27
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
概念
:有且仅有一个抽象方法的接口
和接口中的抽象方法个数有关;和接口中的除抽象方法其他方法无关;
2.什么情况下可以使用lambda表达式来替换面向对象编码?
- 使用Lambda必须要有接口,并且要求接口中有且仅有一个抽象方法
必须有上下文环境,才能推导出Lambda对应的接口
根据局部变量的赋值得知Lambda对应的接口
Runnable r = () -> System.out.println("Lambda表达式");
根据调用方法的参数得知Lambda对应的接口
new Thread(() -> System.out.println("Lambda表达式")).start();
3.什么情况下lambda表达式可以简写?
参数类型可以省略。但是有多个参数的情况下,
不能只省略一个
- 如果参数有且仅有一个,
那么小括号可以省略
如果代码块的语句只有一条,可以省略大括号和分号,和return关键字
4.方法引用分为哪几种形式?
有四种
①引用类的静态方法
②引用对象的实例方法
③引用类的实例方法
④引用构造器
作者:
徐雯雯
时间:
2019-5-9 21:27
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答 : 函数式接口就是有且仅有一个抽象方法的接口 , 它和抽象方法是的数量有关, 和接口内除抽象方法外其他方法无关
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答 : 只有在函数式接口的情况下才能使用lambda
3.什么情况下lambda表达式可以简写?
答 : 1. 参数类型可以省略,
2. 参数如果有且仅有一个 , 小括号可以省略
3. 如果代码块的语句只会有一条,可以省略大括号,分号和return
4.方法引用分为哪几种形式?
答 : 四种
1. 引用类方法
2. 引用对象的实例方法
3. 引用类的实例方法
4. 引用构造器
作者:
陈青超
时间:
2019-5-9 21:28
.什么是函数式接口,函数式接口和什么有关,和什么无关?
只有一个抽象方法的接口叫函数式接口。函数式接口和抽象方法的数量有关,和方法内容无关。
2.什么情况下可以使用lambda表达式来替换面向对象编码?
当有一个接口,且接口里只有一个抽象方法时候,我们可以通过一个lambda简化写法替代传统的创建实现接口的类,在主方法中创建对象来调用该接口方法和使用匿名内部类的方法。
3.什么情况下lambda表达式可以简写?
1.参数类型可以省略;2.当只有一个参数的时候,小括号可以省略;3.当大括号里只有一条语句时候,可以省略掉大括号甚至return。
4.方法引用分为哪几种形式?
1.对象引用
2.类引用(1.自定义类 2.jdk提供的类);
3.构造方法引用;
作者:
郑方灼
时间:
2019-5-9 21:28
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答:(1)函数式接口是一个接口中且只有一个抽象方法的接口;
(2)和接口中的抽象方法个数有关;和接口中的除抽象方法其他方法无关;
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答:(1)有一个接口;
(2)接口有且仅有一个抽象方法;
3.什么情况下lambda表达式可以简写?
答:(1)参数类型可以省略,但是要同时删除不能只删除一个;
(2)如果参数有且仅有一个,可以省略小括号;
(3)如果方法体内代码只有一句,可以同时省略大括号,分号和return关键字。
4.方法引用分为哪几种形式?
答:(1)引用类方法;
(2)引用对象的实例方法;
(3)引用对象的实例方法;
(4)引用构造器;
作者:
刘洪霖
时间:
2019-5-9 21:28
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答:函数式接口是一个接口中且只有一个抽象方法的接口;和接口中的抽象方法个数有关;和接口中的除抽象方法其他方法无关;
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答:1、接口是个函数式接口;2、具有上下文关系;
3.什么情况下lambda表达式可以简写?
答:1、参数类型可以省略,但是有多个参数的情况下,不能只省略一个;
2、参数有且仅有一个,那么小括号可以省略;
3、代码块的语句只有一条,可以省略大括号和分号,和return关键字;
4.方法引用分为哪几种形式?
答:分为1、引用类方法(引用类的静态方法);格式:类名::静态方法;使用说明:Lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数;
2、引用对象的实例方法(引用类中的成员方法); 格式:对象::成员方法;使用说明:Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数;
3、引用类的实例方法(引用类中的成员方法); 格式:类名::成员方法;使用说明:Lambda表达式被类的实例方法替代的时候第一个参数作为调用者后面的参数全部传递给该方法作为参数;
4、引用构造器(引用构造方法); 格式:类名::new ;使用说明:Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数;
作者:
汪一飞
时间:
2019-5-9 21:29
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
有且仅有一个抽象方法的接口
2.什么情况下可以使用lambda表达式来替换面向对象编码?
(1)有一个接口有且仅有一个抽象方法
(2)必须有上下文环境
3.什么情况下lambda表达式可以简写?
可以推导就可以省略
4.方法引用分为哪几种形式?
(1)引用类方法
(2)引用对象的实例方法
(3)引用类的实例方法
(4)引用构造器
作者:
李侄旭
时间:
2019-5-9 21:29
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答:函数式接口是一个接口中且只有一个抽象方法的接口;和接口中的抽象方法个数有关;和接口中的除抽象方法其他方法无关;
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答:1、接口是个函数式接口;2、具有上下文关系;
3.什么情况下lambda表达式可以简写?
答:1、参数类型可以省略,但是有多个参数的情况下,不能只省略一个
;
2、参数有且仅有一个,那么小括号可以省略;
3、代码块的语句只有一条,可以省略大括号和分号,和return关键字
;
4.方法引用分为哪几种形式?
答:分为1、引用类方法(引用类的静态方法);格式
:类名::静态方法
;使用说明:Lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数;
2、引用对象的实例方法(引用类中的成员方法); 格式:
对象::成员方法
;使用说明:Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数;
3、引用类的实例方法(引用类中的成员方法); 格式:
类名::成员方法;
使用说明:Lambda表达式被类的实例方法替代的时候
第一个参数作为调用者
后面的参数全部传递给该方法作为参数
;
4、引用构造器(引用构造方法); 格式:
类名::new
;使用说明:Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数;
作者:
王嘉俊
时间:
2019-5-9 21:31
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答函数接口就是有且仅有一个抽象方法接口,和抽象方法的数量有关,和接口内除抽象方法外其他方法无关.
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答:只有在函数式接口的情况下才能使用Lambda.
3.什么情况下lambda表达式可以简写?
答:1.参数的类型可以省略
2.如果参数有且仅有一个,那么小括号可以省略.
3.如果代码块的语句只有一条,可以省略大括号和分号(如果有return,return也要省略)
4.方法引用分为哪几种形式?
答:1,引用类的静态方法
2.引用对象的实例
3.引用类的实例方法
4.引用构造方法
作者:
谢龙炜
时间:
2019-5-9 21:31
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答:只有一个抽象方法的接口;
和抽象方法数量有关,和默认方法,静态方法无关
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答:1.需要一个函数式接口
2.这个函数式接口必须作为局部变量的参数类型或者方法列表的参数类型(具有上下文关系)
具备这2点可以使用lambda表达式来替换面向对象编码。
3.什么情况下lambda表达式可以简写?
答:1.可以省略()参数列表的参数类型(要注意:要么都省略,要么都不省略,不可以省略一部分)
2.如果只有一个参数,可以省略()
3.如果{}中只有一条语句,可以省略{}、;、return(要注意:要么一起省略,要么全都不省略)
以上3种情况可以简写。
4.方法引用分为哪几种形式?
答:1.引用类方法 useConverter(Integer::parseInt);
2.引用对象的实例方法 usePrinter(ps::printUpper);
3.引用类的实例方法 useMyString(String::substring);
4.引用构造器 useStudentBuilder(Student::new);
作者:
阮必文
时间:
2019-5-9 21:32
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
有且只有一个抽象方法的叫函数是借口,和抽象方法有关与其他无关
2.什么情况下可以使用lambda表达式来替换面向对象编码?
必须有函数式接口,即只包含一个抽象方法的接口。
必须有上下文环境,必须有接口作为数据类型接收
3.什么情况下lambda表达式可以简写?
根据上下文推导的值的信息,都可以省略
小括号内参数的类型可以省略,如果小括号内有且仅有一个参,则小括号可以省略,如果大括号内仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号。
4.方法引用分为哪几种形式?
分为:
1.类名::静态方法名
2.对象::实例方法名
3.类名::实例方法名
4.类名::new
作者:
郭建(07期)
时间:
2019-5-9 21:33
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答:有且只有一个抽象方法的接口,称之为函数式接口;函数式接口与抽象方法的个数有关,与除抽象方法之外的方法无关。
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答:1.使用Lambda必须要有接口,并且要求接口中有且仅有一个抽象方法。
2.必须有上下文环境,才能推导出Lambda对应的接口。
3.什么情况下lambda表达式可以简写?
答:1.参数的类型可以省略(但是有多个参数的情况下,不能只省略一个)。
2.如果参数有且仅有一个,那么小括号可以省略。
3.如果代码块的语句只有一条,可以省略大括号和分号。如果有return,return也要省略掉。
4.方法引用分为哪几种形式?
答:1.引用类方法,即引用类的静态方法 格式:类名::静态方法
2.引用类方法,即引用类的静态方法 格式:类名::静态方法
3.引用对象的实例方法,即引用类中的成员方法 格式:对象::成员方法
4.引用类的实例方法,即引用类中的成员方法 格式:类名::成员方法
5.引用构造器,即引用构造方法 格式:类名::new
作者:
宋涵耀
时间:
2019-5-9 21:33
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
只有一个抽象方法的接口,局部变量的参数类型或者方法列表的参数类型(具有上下文关系)
2.什么情况下可以使用lambda表达式来替换面向对象编码?
1.需要一个函数式接口(只有一个抽象方法的接口)
2.这个函数式接口必须作为局部变量的参数类型或者方法列表的参数类型(具有上下文关系)
3.什么情况下lambda表达式可以简写?
当自己写的逻辑已经在程序中存在
4.方法引用分为哪几种形式?
1.引用类方法 useConverter(Integer::parseInt);
2.引用对象的实例方法 usePrinter(ps::printUpper);
3.引用类的实例方法 useMyString(String::substring);
4.引用构造器 useStudentBuilder(Student::new);
作者:
宋加福
时间:
2019-5-9 21:36
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答:函数式接口是一个接口中且只有一个抽象方法的接口;和接口中的抽象方法个数有关;和接口中的除抽象方法其他方法无关;
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答:1、接口是个函数式接口;2、具有上下文关系;
3.什么情况下lambda表达式可以简写?
答:1、参数类型可以省略,但是有多个参数的情况下,不能只省略一个
;
2、参数有且仅有一个,那么小括号可以省略;
3、代码块的语句只有一条,可以省略大括号和分号,和return关键字
;
4.方法引用分为哪几种形式?
答:分为1、引用类方法(引用类的静态方法);格式
:类名::静态方法
;使用说明:Lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数;
2、引用对象的实例方法(引用类中的成员方法); 格式:
对象::成员方法
;使用说明:Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数;
3、引用类的实例方法(引用类中的成员方法); 格式:
类名::成员方法;
使用说明:Lambda表达式被类的实例方法替代的时候
第一个参数作为调用者
后面的参数全部传递给该方法作为参数
;
4、引用构造器(引用构造方法); 格式:
类名::new
;使用说明:Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数;
作者:
林聪全
时间:
2019-5-9 21:36
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答:只有一个抽象方法的接口.
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答:1)有一个函数式接口(只有一个抽象方法的接口)
2)函数式接口必须作为局部变量的参数类型,或者方法列表的参数类型(具有上下文关系)
3.什么情况下lambda表达式可以简写?
答:1)如果只有一个参数,可以省略()
2) 如果{}中只有一条语句,可以省略{} ; return
4.方法引用分为哪几种形式?
答: 1)常量:被final修饰的变量不可修改,所以是常量
2)抽象方法:public abstract 返回值类型 方法名();
3)默认方法:用于解决接口升级问题
4)私有方法:普通私有方法:用于解决默认方法的代码重复问题
静态私有方法:用于解决静态方法的代码重复问题
5)静态方法:用于接口快速调用方法
作者:
吴星辉
时间:
2019-5-9 21:37
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
有且仅有一个抽象方法的接口
函数式接口与具体操作有关,与面向对象无关
2.什么情况下可以使用lambda表达式来替换面向对象编码?
有一个接口。 接口中有且仅有一个抽象方法
3.什么情况下lambda表达式可以简写?
只有一个参数时,可省略参数两边的“()”。
参数类型可省略,但所有参数的参数类型要一起省略。
只有一条方法语句时,可省略return关键字、“;”和方法体两边的“{}”。
4.方法引用分为哪几种形式?
引用类方法,其实就是引用类的静态方法
引用对象的实例方法,其实就引用类中的成员方法
引用类的实例方法,其实就是引用类中的成员方法
引用构造器,其实就是引用构造方法
作者:
余聪望
时间:
2019-5-9 21:37
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
有且仅有一个抽象类方法的接口,和抽象方法数量有关,和默认方法,静态方法无关
2.什么情况下可以使用lambda表达式来替换面向对象编码?
- 使用Lambda必须要有接口,并且要求接口中有且仅有一个抽象方法(函数式接口)
- 必须有上下文环境,才能推导出Lambda对应的接口
- 根据局部变量的赋值得知Lambda对应的接口
? Runnable r = () -> System.out.println("Lambda表达式");
- 根据调用方法的参数得知Lambda对应的接口
? new Thread(() -> System.out.println("Lambda表达式")).start();
3.什么情况下lambda表达式可以简写?
- 参数类型可以省略。但是有多个参数的情况下,不能只省略一个
- 如果参数有且仅有一个,那么小括号可以省略
- 如果代码块的语句只有一条,可以省略大括号和分号,和return关键字
4.方法引用分为哪几种形式?
引用类的静态方法 类名::静态方法
使用说明
Lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数
引用对象的成员方法 对象::成员方法
使用说明
Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数
引用类的成员方法 类名::成员方法
使用说明
Lambda表达式被类的实例方法替代的时候
第一个参数作为调用者
后面的参数全部传递给该方法作为参数
引用构造方法 类名::new
使用说明
Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数
作者:
连惠腾
时间:
2019-5-9 21:38
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
函数式接口:只有一个抽象方法的接口。可以用@FunctionalInterface注解,(写在接口上可以检测该接口是否为函数式接口)
函数式接口和接口中的抽象方法有关和接口中的常量、静态方法、默认方法、私有方法无观。
2.什么情况下可以使用lambda表达式来替换面向对象编码?
a.只有一个抽象方法的接口(函数式接口),
b.这个函数式接口需要有上下文实现关系。将这个接口作为局部变量的参数类型或者方法列表的参数类型。
3.什么情况下lambda表达式可以简写?
a.当lambda表达式中的参数只有一个可以省略()
b.当lambda表达式()中具有一个以上的参数时,可以省略它们的参数类型,但是如果省略不能只省略一个,必须全部省略。
c.当lambda表达式中的方法体中只有一句代码时可以省略{},return,分号;且省略的内容要么一起省略,要么不省略。
4.方法引用分为哪几种形式?
a.引用类方法
b.引用对象实例方法
c.引用类的实例方法
d.引用构造器方法
作者:
黄戚君
时间:
2019-5-9 21:46
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
有且仅有一个抽象类方法的接口,和抽象方法数量有关,和默认方法,静态方法无关
2.什么情况下可以使用lambda表达式来替换面向对象编码?
- 使用Lambda必须要有接口,并且要求接口中有且仅有一个抽象方法(函数式接口)
- 必须有上下文环境,才能推导出Lambda对应的接口
- 根据局部变量的赋值得知Lambda对应的接口
? Runnable r = () -> System.out.println("Lambda表达式");
- 根据调用方法的参数得知Lambda对应的接口
? new Thread(() -> System.out.println("Lambda表达式")).start();
3.什么情况下lambda表达式可以简写?
- 参数类型可以省略。但是有多个参数的情况下,不能只省略一个
- 如果参数有且仅有一个,那么小括号可以省略
- 如果代码块的语句只有一条,可以省略大括号和分号,和return关键字
4.方法引用分为哪几种形式?
引用类的静态方法 类名::静态方法
使用说明
Lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数
引用对象的成员方法 对象::成员方法
使用说明
Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数
引用类的成员方法 类名::成员方法
使用说明
Lambda表达式被类的实例方法替代的时候
第一个参数作为调用者
后面的参数全部传递给该方法作为参数
引用构造方法 类名::new
使用说明
Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数
作者:
LPY
时间:
2019-5-9 21:54
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
只有一个抽象方法的接口称为函数式接口。
函数式接口与具体操作有关,与面向对象无关。
2.什么情况下可以使用lambda表达式来替换面向对象编码?
当一个接口内有且仅有一个抽象方法,代码有上下文环境时,可以使用lambda表达式来替换面向对象编码。
3.什么情况下lambda表达式可以简写?
①只有一个参数时,可省略参数两边的“()”。
②参数类型可省略,但所有参数的参数类型要一起省略。
③只有一条方法语句时,可省略return关键字、“;”和方法体两边的“{}”。
4.方法引用分为哪几种形式?
①引用类的静态方法
②引用类的成员方法(当类的对象作为参数传入Lamda表达式中)
③引用对象的成员方法(当对象在Lambda表达式外面时)
④引用类的构造器
作者:
伍志晟
时间:
2019-5-9 21:56
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答:
接口有且仅有一个抽象方法是函数式接口。
函数式接口和它本身的抽象方法有关,有且只有一个抽象方法。
和其他都无关。
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答:
当方法的参数为函数式接口时可以使用lambda表达式来替换面向对象编码
3.什么情况下lambda表达式可以简写?
答:
形式参数可以省略数据类型,当形式参数只有一个时可以省略(),当方法体只有一句时 可以省略 ;和 {},如果有返回值 还可以省略return
4.方法引用分为哪几种形式?
答:
1、引用类方法 (引用类的静态方法)
2、引用对象的实例化方法
3、引用类的实例化方法
4、引用构造器 (引用构造方法)
作者:
林美娇
时间:
2019-5-10 18:56
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答:
有且只有一个抽象方法的接口叫函数式接口。
和抽象方法数量有关,和默认方法,静态方法,私有方法无关。
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答:必须同时满足以下两种情况:
1.有一个函数式接口
2.这个函数式接口必须作为局部变量的参数类型或者方法列表的参数类型(具有上下文关系)
3.什么情况下lambda表达式可以简写?
答:
1.当形式参数只有一个时,可以省略小括号和参数类型
2.参数类型可以全部省略,必须是全部
3.当代码块只有一句时,可以省略大括号和分号,如果有return,也必须省略
4.方法引用分为哪几种形式?
答:
1.引用类方法: 类名::静态方法
2.引用对象的实例方法: 对象名::成员方法
3.引用类的实例方法: 类名::成员方法
4.引用构造器: 类名::new
作者:
刘炯榕
时间:
2019-5-12 21:48
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
有且仅有一个抽象类方法的接口,和抽象方法数量有关,和默认方法,静态方法无关
2.什么情况下可以使用lambda表达式来替换面向对象编码?
- 使用Lambda必须要有接口,并且要求接口中有且仅有一个抽象方法(函数式接口)
- 必须有上下文环境,才能推导出Lambda对应的接口
- 根据局部变量的赋值得知Lambda对应的接口
? Runnable r = () -> System.out.println("Lambda表达式");
- 根据调用方法的参数得知Lambda对应的接口
? new Thread(() -> System.out.println("Lambda表达式")).start();
3.什么情况下lambda表达式可以简写?
- 参数类型可以省略。但是有多个参数的情况下,不能只省略一个
- 如果参数有且仅有一个,那么小括号可以省略
- 如果代码块的语句只有一条,可以省略大括号和分号,和return关键字
4.方法引用分为哪几种形式?
引用类的静态方法 类名::静态方法
使用说明
Lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数
引用对象的成员方法 对象::成员方法
使用说明
Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数
引用类的成员方法 类名::成员方法
使用说明
Lambda表达式被类的实例方法替代的时候
第一个参数作为调用者
后面的参数全部传递给该方法作为参数
引用构造方法 类名::new
使用说明
Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数
作者:
余鹏程
时间:
2019-5-13 21:55
1.什么是函数式接口,函数式接口和什么有关,和什么无关?
答:
有且仅有一个抽象方法的接口,和接口的抽象方法数量有关,和默认方法,静态方法无关
2.什么情况下可以使用lambda表达式来替换面向对象编码?
答:
只有一个抽象方法的接口(函数式接口),
这个函数式接口需要有上下文实现关系。将这个接口作为局部变量的参数类型或者方法列表的参数类型。
3.什么情况下lambda表达式可以简写?
答:
省略的规则
参数类型可以省略。但是有多个参数的情况下,不能只省略一个
如果参数有且仅有一个,那么小括号可以省略
如果代码块的语句只有一条,可以省略大括号和分号,和return关键字
4.方法引用分为哪几种形式?
答:
四种形式:
引用类方法
引用对象实例方法
引用类的实例方法
引用构造器方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2