mik*_*era 8 java backwards-compatibility java-8
我正在用Java开发一个开源库,并希望确保它对Java 8用户来说很方便,并尽可能利用Java 8中的新概念(lambdas等)
同时我绝对需要保持向后兼容性(库必须仍然可以用于使用Java 6或7的人).
我可以采用Java 8有哪些有用的功能,这对于库用户来说是有益的,而不会破坏旧Java版本用户的库兼容性?
我不了解你的图书馆,这个建议可能略有偏差。
拉姆达斯:别担心。任何函数式接口都可以使用 Lambda 表达式来实现。
方法引用:与 lambda 相同,它们应该只是可用的。
Streams:如果这适合您的库,您应该使用它们,但保持兼容性在这里比较困难。可以使用第二个库部分来实现向后兼容性,该部分环绕基础库并挂钩到它的公共 API。因此,它可以在不放弃 Java 6/7 的情况下提供额外的糖/功能。
默认方法:无论如何,使用这些!它们是增强现有实现而不破坏现有实现的快速/廉价/好方法。您添加的所有默认方法将自动可用于实现类。然而,这些还需要第二个库部分,因此您应该在基础库中提供基础接口,并从配套库扩展接口。
不要分叉该库,放弃旧的库,因为仍然有许多开发人员无法使用 Java 8,甚至 Java 7。如果您的库适合在 Android 等设备上使用,请保持该兼容性。
| 归档时间: |
|
| 查看次数: |
993 次 |
| 最近记录: |