from:http://www.litefeel.com/java-conditional-compilation/
根据Java编译器的优化的机制,Java也能够提供条件编译。对于条件设为false的语句,编译器将不对条件覆盖的代码段生成字节码。
不仅可以用简单的boolean常量值来做条件编译,还可以用字符串常量及任何其他类型的常量.
例如:
1. 简单的boolean常量。
1
2
3
4
5
6
7
|
final
boolean isDebug = true;
if(isDebug)
{
//
debug模式状态
System.out.println("现在是debug模式!");
}
|
2. 字符串常量。
这里要注意的是不能用equals方法,必须用简单的判断符号(==, != ....)
1
2
3
4
5
6
7
8
|
final
String debug = "true";
final
String currentMode = debug;
if(currentMode
== debug)
{
//
debug模式状态
System.out.println("现在是debug模式!");
}
|
3. 其他常量就不设置了
当然我们可以写个CompilationConfig类,里面仅设置所有要用条件编译的选项。
这里我写了个示例,呵呵,记录下以后不要忘记了,也希望能够帮助需要这方向东东的人。
ConmpilationCofig.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package
com.litefeel.javaConditionalCompilationTest;
/**
* 这是一个配置条件编译的类,实际编译后这个类并不跟其他文件关联
* @author lite3
*
*/
public
class CompilationConfig
{
//
配置是否是debug模式, 关键字 final是启用条件编译的关键
static
public final boolean isDebug = true;
//
用条件编译来判别不同的平台
static
public final String platform1 = "platfor1";
static
public final String platform2 = "platform2";
//
当前所用的平台
static
public final String currentPlatform = platform1;
}
|
javaConditionalCompilationTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|