我们在java中替换了这些语句吗?
#ifdef MacOSX
#import <Cocoa/Cocoa.h>
#else
#import <Foundation/Foundation.h>
#endif
Run Code Online (Sandbox Code Playgroud)
我想根据条件编译我的java类?
不,Java没有这样的东西.虽然编译器可以删除保证不执行的代码,但它仍然是有效的代码.所以你可以:
private static final FOO_ENABLED = false;
...
if (FOO_ENABLED) {
System.out.println("This won't be included in the bytecode");
}
Run Code Online (Sandbox Code Playgroud)
......你不能拥有:
private static final FOO_ENABLED = false;
...
if (FOO_ENABLED) {
This isn't even valid code. With a real preprocessor it wouldn't matter.
}
Run Code Online (Sandbox Code Playgroud)
您可以通过常规预处理器运行"不完全Java"代码,以便之后获得有效的Java,但这在开发时会很痛苦.
最好将您感兴趣的功能抽象到接口/抽象类中,然后针对不同的平台进行不同的具体实现,在执行时选择正确的实现.
| 归档时间: |
|
| 查看次数: |
319 次 |
| 最近记录: |