我维护一个Java Swing应用程序.
为了向后兼容java 5(对于Apple机器),我们维护了两个代码库,一个使用Java 6中的功能,另一个没有这些功能.
除了使用Java 6功能的3-4个类之外,代码大致相同.
我希望只保留1个代码库.在编译期间有没有办法让Java 5编译器"忽略"我代码的某些部分?
我不希望简单地评论/取消注释我的代码部分,具体取决于我的java编译器的版本.
关于使用自定义类加载器和动态注释代码的建议有点不可思议,当涉及到维护和保持灵性时,无论哪个可怜的灵魂在你洗牌到新的牧场后接受项目.
解决方案很简单.将受影响的类拉出到两个独立的独立项目中 - 确保包名称相同,然后编译成可以在主项目中使用的jar.如果保持包名称相同,并且方法签名相同,则没有问题 - 只需将您需要的jar版本放入部署脚本中即可.我假设您在同一个脚本中运行单独的构建脚本或具有单独的目标 - ant和maven都可以轻松处理有条件地抓取文件并复制它们.