在Java中是否存在类似于C/C++中的#ifdef这样的东西?
例如:
请注意,即使像示例中那样
我正在寻找一种条件编译的方法--如果
我的问题背景是,我在Eclipse中有一个Processing应用程序。我在两个独立的项目中同时使用普通Processing和处理Android,但我希望能够在这两者之间移动项目的源代码而不必担心编译器错误。例如,我希望能够有源代码文件,可以从Android项目移动到桌面项目,并只需要改变几个东西--例如,将
我真的需要条件编译,因为当我将源代码从安卓项目复制到桌面项目时,桌面库显然不包含安卓库,然后源代码甚至无法编译。
编辑:现在我知道Java中没有预处理器,我的问题是:是否有其他方式在我的项目中具有此功能(能够将源代码从一个项目复制到另一个项目,并仅需进行非常小的更改),而不必手动注释特定的代码片段并记住它们的位置?
编辑2:这不是另一个问题的重复,因为我的问题包括可能有编译错误的代码,而被关闭的问题则没有。那个问题只涉及即使没有
例如:
class Test
{
public static final boolean ANDROID = false;
public Test()
{
if (ANDROID)
{
// do stuff that won't compile if not on android
}
else
{
// do stuff that should be only done on desktop
}
}
}
请注意,即使像示例中那样
ANDROID
为false
,它仍然会尝试编译if
内的代码,尽管它不会(也不应该)编译。我正在寻找一种条件编译的方法--如果
ANDROID
为false
,编译器甚至不应该查看if
。我的问题背景是,我在Eclipse中有一个Processing应用程序。我在两个独立的项目中同时使用普通Processing和处理Android,但我希望能够在这两者之间移动项目的源代码而不必担心编译器错误。例如,我希望能够有源代码文件,可以从Android项目移动到桌面项目,并只需要改变几个东西--例如,将
ANDROID = true
更改为ANDROID = false
。我真的需要条件编译,因为当我将源代码从安卓项目复制到桌面项目时,桌面库显然不包含安卓库,然后源代码甚至无法编译。
编辑:现在我知道Java中没有预处理器,我的问题是:是否有其他方式在我的项目中具有此功能(能够将源代码从一个项目复制到另一个项目,并仅需进行非常小的更改),而不必手动注释特定的代码片段并记住它们的位置?
编辑2:这不是另一个问题的重复,因为我的问题包括可能有编译错误的代码,而被关闭的问题则没有。那个问题只涉及即使没有
#ifdef
也可以编译的代码。最受欢迎的(和被接受的)答案解释了一种已经编译但未在字节码中呈现的代码。但是,我的问题涉及原本无法编译的代码。