如何实现Java 8接口但在Java 6上运行?

Dun*_*gor 9 java java-8

我有一个库,Fakir在你问的时候看到,我希望与Java 6保持兼容.同时,如果它的关键抽象Faker能够实现它将会非常好java.util.function.Supplier<T>.

我通过实施我自己的供应商副本来捏造东西,所以至少可以使用lambdas,但是不能运送两个不同的jar文件(啊Scala,我多么想念你的不同语言规范的多个版本)有没有办法我的密钥抽象向前兼容吗?

Zho*_*gYu 4

我认为这是不可能的。在某些时候,您需要进行一次飞跃,并且您的库不再适用于 8 之前的 java。你现在就可以这样做,有优点也有缺点;缺点是目前还没有多少程序员熟悉 java8。

Java8 中的一些新功能,如 lambda、默认方法、静态接口方法、新类型推理系统、Stream 等新实用程序,将对 API 的设计方式产生重大影响;它们不适用于较旧的 java;与旧的 java 保持兼容是 API 设计者的一个手铐。

现在跳上 Java8 旅行车的优点是你的 API 会更加现代,没有旧 java 的包袱。这将在(不远的)未来得到回报。

  • @mschenk74 - Java8 有很多东西需要消化,所以最好尽早开始。不过我认为 java9 不会对 API 设计产生太大影响。 (4认同)