Java编译 – 有没有办法告诉编译器忽略我的代码部分?

我维护一个 Java Swing应用程序.

为了与Java 5(对于Apple机器)的向后兼容性,我们维护两个代码库,1个使用Java 6的功能,另一个没有这些功能.

代码基本相同,除了使用Java 6功能的3-4个类.

我希望只保留1个代码库.编译过程中有没有办法让Java 5编译器忽略我代码的某些部分?

我不希望根据我的java编译器的版本简单地评论/取消注释我的代码部分.

解决方法

假设类具有相似的功能,1.5与6.0的差异在实现中可以将它们合并到一个类中.然后,没有编辑源来评论/取消注释,您可以依靠编译器始终执行的优化.如果一个if表达式总是为false,则if语句中的代码将不会包含在编译中.

您可以在其中一个类中创建一个静态变量,以确定要运行的版本:

public static final boolean COMPILED_IN_JAVA_6 = false;

然后让受影响的类检查静态变量,并将不同部分的代码放在一个简单的if语句中

if (VersionUtil.COMPILED_IN_JAVA_6) {
  // Java 6 stuff goes here
} else {
  // Java 1.5 stuff goes here
}

然后当你想编译其他版本时,你只需要改变一个变量并重新编译.它可能会使java文件更大,但它会整合您的代码,并消除您拥有的任何代码重复.您的编辑器可能会抱怨无法访问的代码或其他任何内容,但是编译器应该很乐意忽略它.

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...