黑马程序员技术交流社区

标题: 【厦门JavaEE就业2期-每日总结】函数式接口、方法引用 [打印本页]

作者: 厦门校区    时间: 2018-7-6 20:58
标题: 【厦门JavaEE就业2期-每日总结】函数式接口、方法引用
1.什么是lambda的延迟执行?
2.什么情况下可以使用lambda的方法引用?
3.Supplier接口有什么用?
4.Consumer接口有什么用?

作者: 明月照大姜    时间: 2018-7-6 21:29
杨银万
1.什么是lambda的延迟执行?
Lambda在条件判断不成立的情况下不会执行,因为Lambda表达式将代码操作延迟到了对象的方法中执行,调用对象的方法是在条件判断后才执行。
2.什么情况下可以使用lambda的方法引用?
当Lambda表达式的大括号即方法体中的执行代码与其他方法一致或调用其它方法来执行时,可以使用方法引用的写法来简化代码
3.Supplier接口有什么用?
Supplier接口只有一个抽象方法get(),可以用来产生泛型对应类型的对象
4.Consumer接口有什么用?
Consumer接口只有一个抽象方法accept(T t),可以用来消费泛型对应类型的对象





作者: wangyuchen    时间: 2018-7-6 21:45
王宇晨
1.什么是lambda的延迟执行?
lambda延迟执行一些代码执行后,如果结果不被使用,lambda就会延迟执行结果,进而提高性能。
2.什么情况下可以使用lambda的方法引用?
如果方法的参数是一个函数式接口,可以使用lambda表达式。
3.Supplier接口有什么用?
可以获取泛型参数指定类型的对象数据。
4.Consumer接口有什么用?
可以消费一个数据,它的andThen方法可以首先做一个操作,然后再做一个操作,实现组合。








作者: 蔡超凡    时间: 2018-7-6 21:48
1.什么是lambda的延迟执行?
当条件判断不成立的时候,lambda不执行.也就是说会延迟条件判断的时间.
2.什么情况下可以使用lambda的方法引用?
当想实现的方法已经存在情况下可以用方法引用来代替lambda.
3.Supplier接口有什么用?
生产者接口,可以生产任意类型的数据,返回一个数据
4.Consumer接口有什么用?
消费者接口,可以使用任意类型的数据,无返回值
作者: 刘宵    时间: 2018-7-6 21:49
1.什么是lambda的延迟执行?

当lambda作为参数传递时,只有在调用了函数式接口的方法才会加载lambda。这个就是lambda的延迟执行。

2.什么情况下可以使用lambda的方法引用?

当lambda要完成的功能已经存在已有方法实现的时候,就可以用到方法引用。

3.Supplier接口有什么用?

用于返回一个给定泛型的对象。该接口满足函数式编程的要求。

4.Consumer接口有什么用?

用于“消费”一个给定泛型对象,无返回值。该接口满足函数式编程的要求。
作者: 厦门黑马王子    时间: 2018-7-6 21:50
郑雪平

在Java中有且仅有一个抽象方法的接口被称作函数式接口,而Java中的函数式编程体现就是Lambda, 函数式接口适用于函数式编程场景,同样也适用于Lambda使用,因为Java中函数式编程的体现就是依靠Lambda的。Java 中从1.8以上版本开始专门为函数式接口引入了一个新的注解: @FunctionalInterface ,它与之前学的 @Override 注解的作用有点类似,一旦使用该注解来定义接口,那么编译器就会开启强制检查该接口,看看是否确实且仅有一个抽象方法,如果不止一个的话将会报错。 自定义函数式接口的主要使用场景就是作为方法的参数,,Java中的Lambda表达式可以被当作是匿名内部类的来使用,用Lambda表达式作为方法参数,其实就是使用函数式接口作为方法参数。函数式接口方法的引用:我们在Lambda中所指定的操作方案,已经有地方存在相同方案时可以采用方法引用,通过对象名引用成员方法是常见的一种用法;通过类名称引用静态方法;通过Super引用成员方法;通过List引用成员方法;类的构造器引用,因为构造器的名称与类名完全一样,并且不固定。所以构造器引用使用类名称::new 的格式来表示。数组的构造器引用,数组也是 Object 的子类对象,只是语法稍有不同,所以同样具有构造器。常用的函数式接口有:Supplier<T> 接口和Consumer<T> 接口。Supplier接口用来获取生成一个泛型参数指定类型的对象数据; Consumer接口是用来消费数据的。Supplier接口有一个抽象方法 void accept(T t) 和一个默认方法 andThen 。

作者: 刘思聪    时间: 2018-7-6 21:52
1.什么是lambda的延迟执行?
Lambda表达式,为不调用不执行,则可以在判断条件满足后再执行相应的代码,对于日志打印等情况,可以减少很多不必要的字符拼接等带来的性能浪费
2.什么情况下可以使用lambda的方法引用?
当要使用Lambda表达式实现的内容,仅仅是直接调用其他已有的方法(不论是已有类的静态方法还是已有对象的成员方法)就能实现的时候。
3.Supplier接口有什么用?
生产数据,无参数,有返回值,内有抽象方法T get()专门用来根据需求产生指定类型(泛型T)的数据返回给外部调用者。
4.Consumer接口有什么用?
消费数据,无返回值,有参数,内有抽象方法accept(T t)对于从外部传入指定类型的数据T消费(对其进行任意处理)。
作者: 苏华清    时间: 2018-7-6 21:52

1.什么是lambda的延迟执行?
调用对象方法时才执行代码语句
2.什么情况下可以使用lambda的方法引用?
lamda 方法体已经实现过,可以通过调用方法进行实现,避免代码冗余
3.Supplier接口有什么用?
生产者 产生所需要类型的对象数据
4.Consumer接口有什么用?
消费者 消费一个指定类型数据
作者: wangyuchen    时间: 2018-7-6 21:54
本帖最后由 wangyuchen 于 2018-7-6 21:56 编辑

...
作者: 就叫那个谁    时间: 2018-7-6 21:54
谢精良

1.什么是lambda的延迟执行?
在条件判断语句不成立的情况下不会调用接口的抽象方法
2.什么情况下可以使用lambda的方法引用?
当lambda实现的功能已存在拥有实现此功能的方法的类使可以使用方法引用
3.Supplier接口有什么用?
通过实现抽象方法生成一个对象
4.Consumer接口有什么用?
通过实现抽象方法消费一个对象





作者: abaoo2018    时间: 2018-7-6 21:54
梁端刚
1.什么是lambda的延迟执行?
例如对日志消息进行拼接后,在满足条件的情况下进行打印输出
    普通方法,无论是否满足条件都会进行拼接
    lambda方法,只有在满足条件下才会进行拼接,即延迟加载,只有在调用接口方法才会执行

2.什么情况下可以使用lambda的方法引用?
lambda表达式是匿名内部内的优化,方法引用是lambda表达式的优化
若lambda表达式中的方法体中方法在其他类中已存在,根据可推导可省略的原则,可以使用方法引用
3.Supplier接口有什么用?
生产一个对象
4.Consumer接口有什么用?
消费一个对象

作者: 康春达    时间: 2018-7-6 21:55
康春达
1.什么是lambda的延迟执行?
lambda在没有程序调用的时候不会自动执行  
2.什么情况下可以使用lambda的方法引用?
要执行的代码 与 某个方法重复时 可以引用
3.Supplier接口有什么用?
根据传入的参数 return 一个数据 get()
4.Consumer接口有什么用?
根据接受的数据 进行处理
作者: 五先生    时间: 2018-7-6 21:56
吴香斌


1.什么是lambda的延迟执行?
Lambda的方法体是在调用到函数式接口的抽象方法时,才会运行方法体部分,所以存在一个延迟加载的效果.

2.什么情况下可以使用lambda的方法引用?

当Lambda使用的方法,已经有现成的方案存在,这时就会出现重复. 就可以直接进行已有方案的引用,不用重新提供方案

3.Supplier接口有什么用?

用来获取一个泛型参数指定类型的对象数据

4.Consumer接口有什么用?

操作传入的参数,并且不进行返回.

作者: 杨银龙    时间: 2018-7-6 21:56
1.什么是lambda的延迟执行?
  将函数式接口作为参数传进方法里,方法设定条件,在main方法调用方法时,lambda要满足条件才会执行,节省性能,这就是延迟执行。
2.什么情况下可以使用lambda的方法引用?
  当lambda的大括号里执行内容有其他类或已有的方法能实现时。
3.Supplier接口有什么用?
  生产者接口,可以生成任意泛型的数据
4.Consumer接口有什么用?
  消费者接口,可以消费任意泛型的数据
作者: 王_叔叔    时间: 2018-7-6 21:58

王博

1.什么是lambda的延迟执行?
在一个条件判断里面用lambda时,只有条件成立了,才会调用lambda


2.什么情况下可以使用lambda的方法引用?
如果lambda方法体已经存在于其他类的方法中,那么就可以引用该类的类名(静态方法)或对象名(非静态方法)调用该类方法
如果是创建一个对象可以


3.Supplier接口有什么用?
相当于一个生产者, 给什么就返回什么, 无参数, 有返回值


4.Consumer接口有什么用?
相当于一个消费者, 给什么, 就用什么, 有参数, 无返回值



作者: 夜太美    时间: 2018-7-6 22:01
贾宗虎

1.什么是lambda的延迟执行?
就是lambda语句并不会在判断条件不成立的时候执行,达到节省性能的目的

2.什么情况下可以使用lambda的方法引用?

在lambda的代码体要实现的功能,已经有其他方法实现了的情况下,可以用方法引用来省略代码

3.Supplier接口有什么用?

其中的get方法,没有参数,但有返回值,可以达到生产者的效果.用来生产数据

4.Consumer接口有什么用?


accept方法,无参数,有返回值,模拟消费者的功能

作者: 想不出名字Snail    时间: 2018-7-6 22:02
洪文生
1.什么是lambda的延迟执行?
当条件判断不成立的时候,lambda不执行.也就是说会延迟条件判断的时间.
2.什么情况下可以使用lambda的方法引用?
当要使用Lambda表达式实现的内容,仅仅是直接调用其他已有的方法(不论是已有类的静态方法还是已有对象的成员方法)就能实现的时候。
3.Supplier接口有什么用?
根据传入的参数 return 一个数据 get()
4.Consumer接口有什么用?
相当于一个消费者, 给什么, 就用什么, 有参数, 无返回值
作者: bihu2018    时间: 2018-7-6 23:53
1.什么是lambda的延迟执行?
使用函数式接口做为方法的参数,只有在判断条件成立的情况下才会执行Lambda里的实现方法,避免了资源的浪费
2.什么情况下可以使用lambda的方法引用?
如果Lambda要表达的函数方案已经在某个方法使用,就可以使用双冒号来引用该方法作为Lambda的替换者
3.Supplier接口有什么用?
接口仅包含一个无参的方法:T get() ,Lambda需要对外提供一个符合泛型类型条件的对象数据,它就是用来获取这个泛型数据来作为返回值
4.Consumer接口有什么用?
包含一个无返回的void accept(T t),意为消费一个指定泛型的对象





作者: xiguahx    时间: 2018-7-7 00:23
黄希
1.什么是lambda的延迟执行?
        比如定义一个方法,根据日志等级,判断是否需要记录日志。记录日志这个操作,使用Lambda表达式来替代函数式接口的实现类对象,达到延迟执行的目的。如果不符合等级要求,Lambda中的操作将不会执行,从而达到节省性能的效果。
       
2.什么情况下可以使用lambda的方法引用?
        在程序中,Lambda表达式所指定的操作,已经在某个地方存在相同方案,就没必要写重复的逻辑。这种情况下就可以使用Lambda的方法引用。

3.Supplier接口有什么用?
        Supplier接口是一个函数式接口,接口中只定义了一个无参有返回值的抽象方法T get(),对外提供一个符合泛型类型的对象。

4.Consumer接口有什么用?
        Consumer接口是一个函数式接口,接口中定义了一个有参无返回值的抽象方法void accept(T t),不生产数据,只消费数据。
        接口中还提供一个默认方法andThen,可以实现多个待执行步骤的拼接。


作者: 1NightStand    时间: 2018-7-7 11:12
1.什么是lambda的延迟执行?
Lambda延迟机制是在条件成立后,用对象调用方法的时候才去执行该段代码,避免了性能浪费.

2.什么情况下可以使用lambda的方法引用?
方法引用是和lambda表达式配套起来用的,当一段代码可以使用Lambda表达式,且代码的需求,只需要通过一个已经有该方法存在的对象/类等去调用就可以满足的时候,就可以使用方法引用.

3.Supplier接口有什么用?
Supplier接口里只有一个T get();方法通过Supplier可以返回得到一个我们需要的数据类型.

4.Consumer接口有什么用?
Consumer接口里有一个void accpet方法及一个void andThen方法,用于消费一个泛型数据,andThen则是数据可以消费两次.





作者: 彭东亮    时间: 2018-7-7 21:08
彭东亮
1.什么是lambda的延迟执行?
当不符合条件时,Lambda便不会执行,节省了性能空间。
2.什么情况下可以使用lambda的方法引用?
如果一个方法的返回值类型是一个函数式接口,那么就可以直接返回一个Lambda表达式
3.Supplier接口有什么用?
用来获取一个泛型参数指定类型的对象数据
4.Consumer接口有什么用?
是用来“消费”一个数据,其数据类型由泛型参数决定
作者: 陈绍飞.    时间: 2018-7-7 22:03

1.使用Lambda表达式只有条件成立的时候才会去执行Lambda表达式,避免了一些没有被使用的代码结果造成的资源浪费。

2.如果Lambda要表达的函数方案已经存在于某个方法的实现中那么则可以通过双冒号来引用该方法作为Lambda的替代者。

3.有get()方法是没有参数的但返回值是本来的数据类型所以Supplier是生产数据的。

4.有accept()方法是有参数为本来的数据类型没有返回值的所以Consumer是消费数据的。
作者: 合卺    时间: 2018-7-8 00:18
林梅源
1.什么是lambda的延迟执行?
Lambda在条件判断不成立下不会,调用对象时才执行的代码语句
2.什么情况下可以使用lambda的方法引用?
1、接口有且只有一个抽象方法
2、上下文可以推导,也就是方法的参数或者局部变量,必须是Lambda对应的接口类型
3.Supplier接口有什么用?
生产一个数据,用来获取一个泛型参数指定类型的对象数据。是一个函数式接口,就是说Lambda表达式需要“对外提供”一个符合泛型的对象数据。
4.Consumer接口有什么用?
消费一个数据,其数据类型由泛型参数决定;
作者: 丶犯二    时间: 2018-7-9 01:08
1.什么是lambda的延迟执行?
在函数式接口作为方法参数时,如果Lambda判断条件不满足,里面的代码将不会执行

2.什么情况下可以使用lambda的方法引用?
想要做到的功能已经有方法实现了,就可以使用方法引用

3.Supplier接口有什么用?
用于创建指定泛型的对象,抽象方法get(),创建并返回指定泛型的对象

4.Consumer接口有什么用?
用于消费传入的数据,抽象方法accept(T t),无返,对传入的数据可以肆意操作
作者: 598170337    时间: 2018-7-9 21:24
1.什么是lambda的延迟执行?
结果不被使用,lambda就会延迟执行结果,
2.什么情况下可以使用lambda的方法引用?
函数式接口,可以使用lambda表达式,可推导可省略
3.Supplier接口有什么用?
生产者,产生泛型对应类型的对象
4.Consumer接口有什么用?
消费者 用来消费泛型对应类型的对象
作者: 1982Monster    时间: 2018-7-9 21:31
刘慧梅
1.什么是lambda的延迟执行?
lambda作为参数,在进行方法调用的时候执行代码语句,就是lambda的延迟执行。
2.什么情况下可以使用lambda的方法引用?
lambda的方法体在其他类中的方法重复时,可以使用方法引用
3.Supplier接口有什么用?
仅有一个无参构造方法T get(),获取一个泛型类型的对象数据
4.Consumer接口有什么用?
消费一个数据


作者: 杨权    时间: 2018-7-9 21:45
1.什么是lambda的延迟执行?
Lambda的延迟执行是当我们判断满足条件时执行Lambda表达式,不满足则不执行

2.什么情况下可以使用lambda的方法引用?
当方法的参数是一个函数式接口的时候,可以使用Lambda表达式

3.Supplier接口有什么用?
Supplier接口可以获取反省参数类型的对象中的数据。

4.Consumer接口有什么用?
Consumer接口是用来消费我们传入的数据。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2