阅读global-variables-in-java后,我发现不建议申报全球 变量。但是,如果我想声明所有类中所有方法都查看的常量变量,那么更好的方法是什么。如何制作这些变量'范围全球?怎么以及为什么,谢谢!
答案 0 :(得分:3)
如果我想声明所有类中所有方法都查看的常量变量
如果那些是真正的常量,那么public static final
字段就完全可以了。
这是什么类型的数据?是否需要外部配置(在运行时或构建时)?是否需要在应用程序启动时计算?该计算是否需要可能不可用或缓慢的外部资源(如文件或网络)?
嗯,变量指示状态,处于不同的绘制状态(绘制,擦除......)。
我不确定我的理解是什么意思,但也许您想要定义enum
?
我不想每次都传递大量参数
这是使用全局变量的一个不好的论据。
也许你想在持有者对象中组合多个参数?
或者有方法的有状态对象(与采用许多参数的无状态函数相反)。
但我仍然需要
new
一个包含这些常量的类。
没有。你可以做到
public final class MyConstants{
public static final String MY_OAUTH_KEY = "ABCDEFGH";
// maybe this should come from pom.xml
public static final String APP_VERSION = "0.0.1";
}
然后从代码中的任何位置使用它
System.out.format("You are running version %s%n", MyConstants.APP_VERSION);