如果可用,我有兴趣使用 Java 7 SDK 中的一些 NIO2 功能(特别是文件系统观察程序),但是我不想为 Java 7 编译我的类并排除 Java 6 运行时。主要是因为我想保持与 Mac OS X 的兼容性,也因为我不想强迫我的用户升级。
这可能吗?最好的方法是什么?任何链接或示例?
以下是我可以想象的一些方法:使用不同的编译器编译类文件并根据 Java 版本动态加载它?或者也许使用反射?或者也许只是 Java 7 的编译器设置来生成与 Java 6 兼容的类?
我正在寻找一种不会变成丑陋的混乱的解决方案:),因此理想情况下,我可以编写一个接口的两种实现,一种使用新功能,一种不使用,然后动态选择一个,而不必进行反射调用到处都是。