条件 Java 编译
2022-09-02 08:55:49
我是一名长期C++程序员,对Java很陌生。我正在Eclipse中开发一个Java黑莓项目。问题 - 有没有办法在项目中引入不同的配置集,然后基于这些配置集编译稍微不同的代码?
在Visual Studio中,我们有项目配置和#ifdef;我知道Java中没有#ifdef,但也许在文件级别上有所作为?
我是一名长期C++程序员,对Java很陌生。我正在Eclipse中开发一个Java黑莓项目。问题 - 有没有办法在项目中引入不同的配置集,然后基于这些配置集编译稍微不同的代码?
在Visual Studio中,我们有项目配置和#ifdef;我知道Java中没有#ifdef,但也许在文件级别上有所作为?
您可以设置“final”字段和ifs,以使编译器优化编译的字节码。
...
public static final boolean myFinalVar=false;
...
if (myFinalVar) {
do something ....
....
}
如果在编译代码时“myFinalVar”为假,则“做点什么......”。bit 将被遗漏在编译的类中。如果你有多个条件 - 这可以整理一下:将它们全部转移到另一个类(比如“Config.myFinalVar”),然后条件可以全部保存在一个整洁的地方。
这种机制在“硬核Java”中有所描述。
[实际上,我认为这与之前发布的“穷人的ifdef”的机制相同。
您可以管理不同的类路径,例如,在一组不同的目录中实现每个“操作”:
dir1/Main.java
dir2/Action.java
dir3/Action.java
,然后为每个版本使用不同的类路径
javac -sourcepath dir1 -cp dir2 dir1/Main.java
或
javac -sourcepath dir1 -cp dir3 dir1/Main.java