A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.什么是函数式接口,函数式接口和什么有关,和什么无关?

答:函数式接口指的是有且仅含有一个抽象方法的接口,函数式接口和抽象方法有关,和接口的默认方法,私有方法,静态方法无关。

2.什么情况下可以使用lambda表达式来替换面向对象编码?

(1)使用Lambda必须要有接口,并且要求接口中有且仅有一个抽象方法。
(2)必须有上下文环境,才能推导出Lambda对应的接口。对应的两种情况,根据局部变量的赋值得知Lambda对应的接口或者根据调用方法的参数得知Lambda对应的接口。

3.什么情况下lambda表达式可以简写?

(1)参数类型可以省略。但是有多个参数的情况下,要全部省略。
(2)如果参数有且仅有一个,那么小括号可以省略。
(3)如果代码块的语句只有一条,可以省略大括号和分号,有return关键字,必须将return省略掉。

4.方法引用分为哪几种形式?

引用类的方法(静态方法)
   类名::静态方法名
   例如:Interger::paseInt
   使用引用类的方法替代Lambda中的全部形参传递给静态方法
引用对象的方法(普通方法)
   对象::方法名称
   例如:System.out::println
   使用引用对象的方法去替代Lambda表达式的时候,将Lambda中的全部形参传递给普通方法
引用类的实例方法(成员方法)
   类名::方法名
   例如:String::substring
   使用类的实例方法替代Lambda表达式的时候,将Lambda中的第一个参数作为成员方法的调用者,其他参数作为方法的参数
引用构造器(构造方法)
   类名::new
   例如:Student::new
   使用引用构造器去替代Lambda表达式的时候,将Lambda中的所有参数作为构造器参数

点评

66666  发表于 2019-7-3 00:20
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马