DanielLittle
2020-04-15 16:19
函数接口 | 抽象方法 | 功能 | 参数 | 返回类型 | 示例 |
---|---|---|---|---|---|
Predicate | test(T t) | 判断真假 | T | boolean | 9龙的身高大于185cm吗? |
Consumer | accept(T t) | 消费消息 | T | void | 输出一个值 |
Function | R apply(T t) | 将T映射为R(转换功能) | T | R | 获得student对象的名字 |
Supplier | T get() | 生产消息 | None | T | 工厂方法 |
UnaryOperator | T apply(T t) | 一元操作 | T | T | 逻辑非(!) |
BinaryOperator | apply(T t, U u) | 二元操作 | (T,T) | (T) | 求两个数的乘积(*) |
像这样的 “函数式接口” 比如像 Predicate 这样传入一个T,返回一个Boolean。 如果我也写了一个“函数式接口”
@FunctionalInterface interface TrueOrFalse(T t){ boolean test(T t) }
这样不是也可以吗?
自建的类型提供了通用操作,可以让我们在写lambda表达式的时候直接使用而避免再去创建新的函数式接口,只是一种语法上的优化,而非必须。如果自己要创建实现的话思路和意义亦然,只是功能重复的话就没有必要了,个性化需求的话新创建就好啦吖,你说对吧。
感谢大牧老师的解答 嘻嘻?
一课掌握Lambda表达式语法及应用
6618 学习 · 58 问题
相似问题