我的项目需要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.
我有一些c ++代码,有一堆#ifdef WIN32,否则我们假设它的IOS代码.但是我现在正试图将这个相同的c ++代码用于android端口.
#ifdef WIN32 ||是否有某种等价物 ANDROID?