- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
据我了解,System.setProperty(“key”,”value”)
和 System.getProperty(“key”)
用于保存和检索系统属性和用户定义的属性。可以在应用程序内的任何位置访问设置的值。
此外,我知道当一个变量被声明为 public
和 static
时,它就变成了一个常量,并且在应用程序中的任何地方都可用。
我想知道 2 个哪个更有优势并且是更好的选择。我能想到的一个方面是,当我们想要检索 xml 文件中的值时,System.setProperty 非常有用[使用 ${key}]。使用公共(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/
我有一个 UserPass 类,它有 2 个属性:User user;字符串密码用户还有其他属性,如用户名、系统 ID 等。 我在 UserPass 上调用了 setProperty ("userna
在设计用于在自定义芯片上运行的 Java 应用程序中找到以下代码行。 System.setProperty("ssl.SocketFactory.provider", "some.custom.soc
当我使用 $wnd.document.getElementById('id'); 它运行成功,我得到了元素。但是,当我尝试像这样设置 property 时: $wnd.document.getElem
我想实现从默认(Windows HKCU)到我自己的(文件系统)的首选项迁移。一切都分开工作,但不能一起工作: public static void main(String[] args){ try
我遇到过非常奇怪的情况。不确定,这是否符合逻辑,但请麻烦。 我有两个元素,一个是jar 文件,第二个是ETL 工具,它完全是一个基于Java 的高级ETL 工具。 我已将我的 jar 导入到一个 ET
考虑以下类: class foo : public QObject { Q_OBJECT Q_ENUMS(E) Q_PROPERTY(E x READ x WRITE setx) pu
在阅读了SetProperty上的页面并查看了我在此处和其他地方可以找到的尽可能多的示例之后,我仍然无法将SetProperty设置为自定义操作ID的After或Before来使用。该文档看起来很简单
我使用 beans/form 处理在登录屏幕上获取输入参数,然后使用这些参数尝试将用户登录到应用程序中。 但是我收到错误 - org.apache.jasper.JasperException: /l
我曾尝试在主方法中使用System.setProperty,没有任何问题,但是当我切换到TestNG作为我的Selenium学习的一部分时,我意识到我们不能编写System.setProperty 在
我正在尝试实现一个域类,用于记录任何属性值何时更改,但我的 setProperty() 调用会在设置实际值时导致无限递归。 这就是现在的样子: void setProperty(String name
为什么我需要使用 setProperty 才能设置 java 类中变量的值 当我可以创建变量的实例并使用该实例来访问我的变量并分配值时。 最佳答案 您指的是Encapsulation 。它是面向对象编
这个问题已经有答案了: How to set request.getParameter in jsp:setProperty (1 个回答) 已关闭 3 年前。 所以基本上我想弄清楚是否可以将 jsp
编辑:代码已更新以包含 @Igor Artamonov 建议的更改,但问题仍然出现!我确实注意到了以下内容 reference to this image ,所有者 2 有高度值,没有 tool_pr
我使用它来验证 HTTP URL 以获取 JSON 字符串 HttpURLConnection inputStream = (HttpURLConnection) myURL.open
我正在开发一个基于 BindableBase 的 ViewModel。此 VM 包含域模型的实例。VM 公开了一个属性,比如 Name 我不想从中使用本地存储(即 VM 中的存储),而是委托(dele
我想将资源文件夹中的文件路径设置为系统属性。 String path = MainCore.class.getClassLoader().getResource("chromedriver-76.0.
为什么 configFile.setProperty("dir", "test") 在 ActionListener 的方法 actionPerformed 中不起作用。它不会将属性放入文件中。 se
当我尝试为我的 XmlSerializer 设置属性时,例如 xmlSerializer.setProperty("http://xmlpull.org/v1/doc/properties.html#
我正在尝试将 QVariantMap 转换为派生自 QObject 的自定义类,但我得到的返回值是 false setProperty()当谈到设置我的枚举类型的属性时。代码如下: MessageHe
我有一个程序,需要在其中设置记录器格式,但由于有多个入口点(我无法控制所有入口点),我想将 System.setProperty() 调用放置在所有入口点汇聚的类的构造函数中。 主类 public s
我是一名优秀的程序员,十分优秀!