我正在编写需要在 Java 7 中运行和编译的库代码,因此我无法直接使用 Java 8 中的新 lambda 功能。
但是我仍然希望代码能够方便地与 Java 8 一起使用。例如:
- 如果 Java 8 用户可以将内部类/访问者样式模式用作 Lambda,那将会很有帮助
- 我想提供便于与 lambda 一起使用的 API
我应该采用哪些实践来确保我的库的 Java 7 和 Java 8 用户获得最佳体验?
最佳答案
Lambda 表达式基于单一方法接口(interface)。任何使用单方法接口(interface)实现的地方(例如,实现具有一种方法的接口(interface)的匿名内部类),Java 8 用户都可以改用 lambda 表达式。
看看集合类在 Java 8 中是如何被修改的;例如,添加到 Iterable
的 forEach
方法。这些方法中的每一个都将单一方法接口(interface)作为参数。
看看:
为了使您的库可供 Java 8 之前的用户使用,您可能还想提供支持旧式迭代集合的方法;不要强制这些用户使用大量匿名内部类。
关于java - 编写 Java 7 库代码以与 Java 8 lambda 配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22345508/