gpt4 book ai didi

java - System.setProperty 还是公共(public)静态变量?

转载 作者:太空宇宙 更新时间:2023-11-04 12:22:47 24 4
gpt4 key购买 nike

据我了解,System.setProperty(“key”,”value”)System.getProperty(“key”) 用于保存和检索系统属性和用户定义的属性。可以在应用程序内的任何位置访问设置的值。

此外,我知道当一个变量被声明为 publicstatic 时,它就变成了一个常量,并且在应用程序中的任何地方都可用。

我想知道 2 个哪个更有优势并且是更好的选择。我能想到的一个方面是,当我们想要检索 xml 文件中的值时,System.setProperty 非常有用[使用 ${key}]。使用公共(public)静态变量无法实现相同的效果。

我的问题是

  1. 还有其他好处吗?
  2. 哪一个是更好的选择?
  3. 什么情况下应该使用 System.setProperty/getProperty 和公共(public)静态变量?

提前致谢。

最佳答案

Setter 可以进行进一步的测试。例如针对 null 进行测试、针对错误值进行测试等...

Setter 通常是更好的选择,但是,没有 Setters 的类可能会更好,不要给用户破坏程序的方法

public static Variable variable;

//In other file
variable = null;

公共(public)静态变量根本不是线程安全的!!!(也许如果它是原子的)

除非处理我确实想要进行大量更改的内容,例如 Vector2D/3D,否则我从不使用公共(public)静态(在这种情况下,无论如何它都不是公共(public)静态,因为它不是静态的)。除此之外,我这样做只是因为用户无法将 x、y、z 归零,因为它是 float/int。通常我会使用执行我想要的操作的方法,而不是简单的 Setter。

(例如:不是一个很好的例子,但我认为它说明了我的意思。使用 Person.eat() 代替 Person.setState(State.EATING))

关于java - System.setProperty 还是公共(public)静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38656345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com