相关疑难解决方法(0)

Java条件编译:如何防止代码块被编译?

我的项目需要Java 1.6进行编译和运行.现在我需要使用Java 1.5(来自营销方面).我想替换方法体(返回类型和参数保持不变),以使其使用Java 1.5进行编译而不会出现错误.

详细信息:我有一个实用程序类OS,它封装了所有特定于操作系统的东西.它有一种方法

public static void openFile(java.io.File file) throws java.io.IOException {
  // open the file using java.awt.Desktop
  ...
}
Run Code Online (Sandbox Code Playgroud)

打开文件,如双击(startWindows命令或openMac OS X命令等效).由于无法使用Java 1.5进行编译,因此我希望在编译期间将其排除,并替换为另一种调用run32dllWindows或openMac OS X的方法Runtime.exec.

问题:我该怎么办?注释可以帮到这里吗?

注意:我使用ant,我可以制作两个java文件OS4J5.java,OS4J6.java它们将包含OS带有Java 1.5和1.6所需代码的类,并OS.java在编译之前复制其中一个(或者一种丑陋的方式 - OS.java根据java有条件地替换内容如果有另一种方式,我不想这样做.

详细说明:在CI中可以使用ifdef, ifndef,在Python中没有编译,我可以hasattr在Common Lisp中使用或其他东西检查功能,我可以使用#+feature.Java有类似的东西吗?

发现这篇文章,但它似乎没有帮助.

任何帮助是极大的赞赏.KH.

java conditional-compilation

50
推荐指数
8
解决办法
3万
查看次数

是否#ifdef ANDROID等同于#ifdef WIN32

我有一些c ++代码,有一堆#ifdef WIN32,否则我们假设它的IOS代码.但是我现在正试图将这个相同的c ++代码用于android端口.

#ifdef WIN32 ||是否有某种等价物 ANDROID?

c++ android

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×1

c++ ×1

conditional-compilation ×1

java ×1