【发布时间】:2021-07-03 06:44:13
【问题描述】:
我知道函数式接口在 Java lambda 表达式中是如何工作的。 但只是想知道 Java 没有提供某些类型(函数或 Lambda)来定义 lambda 表达式,例如Lambda l = () -> xxxxxx;
我了解使用接口可以具有向后兼容性。 但是为什么定义一个新的数据类型不是一个好习惯(覆盖??)
谢谢!
【问题讨论】:
-
我不确定我是否正确理解了您的问题。你是在问我们为什么不写
... new Comparator<Foo>{ @Override public int compare(Foo lhs, Foo rhs) { ... } };之类的东西? -
你见过various
java.util.functiontypes吗?如果您没有:例如Supplier<Xxxxxx> xSupplier = () -> xxxxxx。如果你见过他们,你能澄清你的问题吗? -
Lambda 表达式可以有不同的返回类型和参数,参数有不同的名称。功能接口也提供了解释该方法应该做什么的文档。您将如何建议仅以两种新类型提供所有这些功能? (我不清楚你的最后一句话——如果你能澄清一下就好了。)基本上,不清楚你认为应该发生什么而不是使用函数式接口。