从系统首选项树(根据约定,它与指定类的包相关联)返回首选项节点。约定如下:节点的绝对路径名就是完全限定的包名,开头使用一个斜杠 ('/'),并将其中的每一个句点 ('.') 都替换为斜杠。例如,与类 com.acme.widget.foo 关联的节点绝对路径名是 /com/acme/widget。
此约定不适用于未命名的包,未命名包的关联首选项节点是 。此节点只是为了方便程序的早期开发(而非长期使用)而存在的,它不属于任何包,只用于“一次性”程序。在此节点中不应该存储有价值的数据,因为使用它的所有程序都可以共享它。
希望访问与其包有关的首选项类 foo 可以获得以下首选项节点:
static preferences prefs = preferences.systemnodeforpackage(foo.class);
此语句消除了使用字符串描述首选项节点的需求,从而降低了发生运行时故障的可能性。(如果类名称拼写错误,则通常会导致编译时错误。)
调用此方法将导致返回节点及其祖先的创建(如果它们不存在)。如果在此调用之前返回的节点不存在,那么在对返回节点(或者其某个祖先或子节点)调用 flush 方法之前,不能保证由此调用所创建的节点及其所有祖先是永久性的。
- 参数:
c
- 系统首选项节点需要其包的类。
- 返回:
- 与 c 成员所属包相关联的用户首选项节点。
- 抛出:
nullpointerexception
- 如果 c 为 null。
securityexception
- 如果安全管理器存在并且拒绝 runtimepermission("preferences")。- 另请参见:
runtimepermission