我想用这样的事情来实现我的Android代码的一些调试消息:
private static final boolean DEBUG = false;
if (DEBUG) {
// some code
}
然而,在编译我不断收到“非法开始表达”的错误。最终的布尔工作,但既不是静态的也不是私人的工作。
我在方法中声明了DEBUG变量。如果有一种方法可以使这个全局性的,以便在同一个Java文件中的所有内容都将看到它,而不是我需要在每个需要它的方法中声明它,也会感激。
谢谢!
我想用这样的事情来实现我的Android代码的一些调试消息:
private static final boolean DEBUG = false;
if (DEBUG) {
// some code
}
然而,在编译我不断收到“非法开始表达”的错误。最终的布尔工作,但既不是静态的也不是私人的工作。
我在方法中声明了DEBUG变量。如果有一种方法可以使这个全局性的,以便在同一个Java文件中的所有内容都将看到它,而不是我需要在每个需要它的方法中声明它,也会感激。
谢谢!
如果您希望该变量对该类中的所有方法都可见,则必须在类级别声明该变量。
如果你这样做的方法里面如下:
private static final boolean DEBUG = false;
的问题是修饰private
和static
没有一个方法内不允许。
其实,你应该使用记录器来达到这种目的。
+1用于推荐使用记录器 – LanguagesNamedAfterCofee
编号有很多次您不希望将调试代码编译到生产代码中。 DEBUG测试确保它不会。 – RichieHH
只需在类的顶部声明它(方法之外,但仍然在类中)。
public class MyClass {
private static final boolean DEBUG = false;
...
}
这样,您就可以从每一个你在MyClass
定义方法访问DEBUG
。您会收到一个错误,因为方法中定义变量时,你不能使用private
/static
改性剂,只能用类字段使用它们(这同样适用于public
和protected
- 你可以使用final
任何地方,不过)。
只是把变量放在一个方法之外,一切都可以看到它。 – Serdalis
你不能在Java中创建全局变量,它都需要成为某个类作用域的一部分。将DEBUG定义为该类的一个私有静态最终成员,使该类有权读取它。这意味着班级中的每个方法都可以读取成员。 – breezee