如何访问另一个 class 中定义的 java.util.prefs.Preferences 对象
How to access a java.util.prefs.Preferences object defined in another class
我想了解如何访问在不同 class 中定义的 java.util.prefs.Preferences
对象。或者,就此而言,使用 Preferences
的最佳做法是什么?
我目前从“设置”对话框中保存了首选项,如下所示:
public class Settings extends JDialog {
// [...]
private final Preferences prefs = Preferences.userRoot().node(this.getClass().getName());
// [...]
}
这对于设置各种首选项、恢复为默认值等非常有用。但是,一旦保存了这些首选项,我将需要从另一个 class,特别是我的主对话框访问它们。但是,一旦 Settings
对话框被处理掉,似乎就没有办法访问它的首选项了。如果我将 prefs
设为静态,我将无法使用 this.getClass().getName()
。
我似乎找不到任何关于如何正确执行此操作的信息,需要指导。我需要做什么?我不介意将 prefs
放入它自己的 class,但我仍将 运行 放入静态问题并从另一个 class.
引用它
一个Preferences object is obtained via a lookup. It doesn't matter where you are in the code, if you use the same lookup key, you get the same Preferences
object. The API provides different lookup methods. You just have to select one and be consistent. In my code I use [static] method userNodeForPackage。该方法接受一个参数,它是一个 Class
对象。只要我调用方法 userNodeForPackage
并传递相同的 Class
对象,我将得到相同的 Preferences
对象。
获取 Class
对象的一种方法(但不是唯一方法)是通过 class java.lang.Class
中的 [static] 方法 forName。不过,获取Class
对象的方式无关紧要,只要获取正确的Class
对象即可。
也许这篇文章会有所帮助:
The Preferences API
我想了解如何访问在不同 class 中定义的 java.util.prefs.Preferences
对象。或者,就此而言,使用 Preferences
的最佳做法是什么?
我目前从“设置”对话框中保存了首选项,如下所示:
public class Settings extends JDialog {
// [...]
private final Preferences prefs = Preferences.userRoot().node(this.getClass().getName());
// [...]
}
这对于设置各种首选项、恢复为默认值等非常有用。但是,一旦保存了这些首选项,我将需要从另一个 class,特别是我的主对话框访问它们。但是,一旦 Settings
对话框被处理掉,似乎就没有办法访问它的首选项了。如果我将 prefs
设为静态,我将无法使用 this.getClass().getName()
。
我似乎找不到任何关于如何正确执行此操作的信息,需要指导。我需要做什么?我不介意将 prefs
放入它自己的 class,但我仍将 运行 放入静态问题并从另一个 class.
一个Preferences object is obtained via a lookup. It doesn't matter where you are in the code, if you use the same lookup key, you get the same Preferences
object. The API provides different lookup methods. You just have to select one and be consistent. In my code I use [static] method userNodeForPackage。该方法接受一个参数,它是一个 Class
对象。只要我调用方法 userNodeForPackage
并传递相同的 Class
对象,我将得到相同的 Preferences
对象。
获取 Class
对象的一种方法(但不是唯一方法)是通过 class java.lang.Class
中的 [static] 方法 forName。不过,获取Class
对象的方式无关紧要,只要获取正确的Class
对象即可。
也许这篇文章会有所帮助:
The Preferences API