2

可能重复:
#ifdef #ifndef in Java

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

private static final boolean DEBUG = false;

if (DEBUG) {
// some code
}

但是,在编译时,我不断收到“Illegal start of expression”错误。final 布尔工作,但既不是静态工作也不是私人工作。

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

谢谢!

4

2 回答 2

5

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

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

private static final boolean DEBUG = false;

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


实际上,您应该将 logger 用于这种目的。

于 2012-11-01T01:57:37.857 回答
1

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

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

这样,您可以DEBUG从您定义的每个方法访问MyClass. 您收到一个错误,因为在方法中定义变量时您不能使用private/static修饰符,您只能将它们与类字段一起使用(publicand 也是如此protected- 但是您可以在任何地方使用final)。

于 2012-11-01T01:57:55.680 回答