我了解System.setProperty(“key”,”value”)
和System.getProperty(“key”)
用于保存和检索系统属性和用户定义的属性。可以在应用程序中的任何位置访问设置的值。
此外,我知道当变量声明为public
和static
时,它变为常量,并且在应用程序中的任何位置都可用。
我想知道2这是有利的,也是更好的选择。我想到的一个方面是当我们想要检索xml文件中的值[使用$ {key}]时,System.setProperty非常有用。使用公共静态变量无法实现同样的目的。
我的问题是
提前致谢。
答案 0 :(得分:0)
Setter可以进行进一步的测试。就像测试null,测试坏值等...
Setter通常是一个更好的选择,然而,没有Setter的课程可能更好,不会给用户提供破坏程序的方法
public static Variable variable;
//In other file
variable = null;
公共静态变量根本不是线程安全的!!!(也许它是原子的)
除非处理我真正想要改变的东西,比如Vector2D / 3D,我从不使用公共静态(在这种情况下,它不是公共静态,因为它不是静态的)。除此之外,我只能创建它,因为用户不能将x,y,z归零,因为它是一个float / int。通常我会使用我想要的方法而不是简单的Setter。
(例如:不是一个很好的例子,但我认为它显示了我的意思。而不是使用Person.eat()的Person.setState(State.EATING)
答案 1 :(得分:0)
运行java程序时,实际上是在启动JVM实例。该实例将拥有自己的系统属性。这是你可以放置你的属性的地方。当你运行另一个程序时,它将拥有它自己的系统属性。
Properties对象是Hash表的子类型,它也是线程安全的。但是如果你想使用公共静态变量,你还必须在多线程程序中处理同步访问。