我维护一个 Java Swing 应用程序。
为了向后兼容 java 5(适用于 Apple 机器),我们维护两个代码库,一个使用 Java 6 的功能,另一个不使用这些功能。
除了 3-4 个使用 Java 6 特性的类外,代码基本相同。
我希望只维护 1 个代码库。在编译期间是否有办法让 Java 5 编译器“忽略”我的代码的某些部分?
我不想简单地注释/取消注释我的代码部分,这取决于我的 java 编译器的版本。
最佳答案
关于使用自定义类加载器和动态注释代码的建议在维护和保持理智方面有点令人难以置信,无论哪个可怜的灵魂在你洗牌到新牧场后接手该项目。
解决方法很简单。将受影响的类拉出到两个单独的、独立的项目中——确保包名称相同,然后编译成 jar,然后你可以在你的主项目中使用它们。如果您保持包名称相同,并且方法签名相同,没问题 - 只需将您需要的任何版本的 jar 放入部署脚本中即可。我会假设您运行单独的构建脚本或在同一脚本中有单独的目标 - ant 和 maven 都可以轻松处理有条件地抓取文件并复制它们。
关于Java 编译 - 有没有办法告诉编译器忽略我的部分代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74171/