情况
我有一个 OSGi 项目,我正在尝试迁移到 Java 8。在我的项目中,我依赖于我“OSGi-fied”的第三方库(只需添加MANIFEST.MF
文件并将元数据放入其中)。这些库是从只读 SVN 存储库中签出的,因此我可以在需要时签出更新,因此我不想进行除MANIFEST.MF
文件,因为我cannot提交它们。
Problem
然而,这些库使用大量匿名比较器,例如:
private static final Comparator heightComparator = new Comparator() {
public int compare (Object o1, Object o2) {
return ((Glyph)o1).getHeight() - ((Glyph)o2).getHeight();
}
};
现在,显然java.util.Comparator
接口有一大堆需要实现的新方法(这当然会导致编译错误)。但我真的想避免实现它们或切换到 Lambda 表达式,因为每次我检查新版本时修改原始源很可能会导致冲突。
Java 过去在向后兼容性方面付出了很大的努力,我想知道为什么 API 中如此简单且广泛使用的部分需要如此(相对)大量的精力来迁移。我错过了什么还是真的不可避免?
我有一个类似的问题,比如 thobens:更新了我的 Kepler 4.2.3 以使用 Java 8,将 JAVA 8 设置为新的 JRE 等。
像托本斯一样,我在 Eclipse 的比较器上遇到了错误,要求我实现所有未实现的方法。
最后,这是由旧的编译器合规级别(1.7)引起的 - 切换到 1.8 解决了这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)