java - Lambda 表达式只能在 (Java) 中定义的相同方法中使用吗?
问题描述
我看到了在下一行定义和使用 Lambda 表达式的所有示例。因此,在我看到的每个示例中,Lambda 的定义方法与其使用的方法相同。这仅仅是由于示例还是没有实际的方法可以将这两者分开?换句话说,是否可以调用在不同方法甚至不同类中定义的 Lambda 函数?
解决方案
lambda 表达式定义的类型理论上可以在任何地方使用,所以我相信你的问题源于你只看到了有限的例子。
我研究过几个代码库,其中方法返回由 lambda 表达式指定的功能接口的实现。我可以举一个简单的例子:
public class A {
public static Predicate<String> startsWithA() {
return input -> input.startsWith("A");
}
}
public class B {
public static void main(String[] args) {
System.out.println(A.startsWithA().test("Aardvark"));
}
}
推荐阅读
- reactjs - Chrome DevTools Initiator “Reveal”是什么意思?
- django - Django-Filter 使用lookup_choices 获取自定义结果
- f# - 为什么单击“将选择发送到 F# Interactive”后 F# Interactive 不显示代码行?
- javascript - 如何按优先级对字符串数组进行排序?
- javascript - 为什么超级函数调用自己的构造函数?
- amazon-web-services - 如何使用 boto3 Python API 将大文件从 AWS S3 存储桶复制到另一个 S3 存储桶?
- javascript - 我可以在 Promise.all() 中有多个 .finally() 和多个 .catch() 吗?
- selenium - Рow 使用 xPath 同时获取多个值
- sql - 从两个表中获取具有多个匹配项的行
- javascript - React 路由器更新 URL,但未呈现路由(手动刷新后有效)