Java中的#ifdef等价物?

时间:2012-11-01 01:55:24

标签: java android conditional-compilation

  

可能重复:
  #ifdef #ifndef in Java

我正在尝试使用以下内容在我的Android代码中实现一些调试消息:

private static final boolean DEBUG = false;

if (DEBUG) {
// some code
}

然而,在编译时我不断收到“非法表达式启动”错误。 final boolean有效,但既不是静态也不是私有。

我在方法中声明了DEBUG变量。如果有一种方法可以使这个全局化,以便同一个Java文件中的所有内容都能看到它而不是我必须在每个需要它的方法中声明它,也会感激不尽。

谢谢!

2 个答案:

答案 0 :(得分:5)

如果希望变量对该类中的所有方法都可见,则必须在类级别声明变量。

如果您在方法中执行以下操作:

private static final boolean DEBUG = false;

问题是方法中不允许使用修饰符privatestatic


实际上,你应该使用记录器来达到这种目的。

答案 1 :(得分:1)

只需在类的顶部声明它(在方法之外但仍在类本身中)。

public class MyClass { 
    private static final boolean DEBUG = false;
    ... 
}

这样,您就可以在DEBUG中定义的每种方法中访问MyClass。您收到错误是因为在方法中定义变量时无法使用private / static修饰符,您只能将它们与类字段一起使用(同样适用于publicprotected - 你可以在任何地方使用final