- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试了解 java.util.prefs.Preferences
的不同构造函数有效,但不确定在不同情况下使用哪些。
对于一个,是否Preferences
将首选项/属性保留到文件中?换句话说,我可以使用此类来存储我的应用程序运行时的首选项,还是所有内容都保存在内存中?
就构造函数而言,只有几种方法可以实例化 Preferences
:
Preferences p = new Preferences();
Preferences p = Preferences.userNodeForPackage(this.getClass());
Preferences p = Preferences.userRoot();
API docs这些构造函数如下(分别):
Sole constructor.
Returns the preference node from the calling user's preference tree that is associated (by convention) with the specified class's package.
Returns the root preference node for the calling user.
所以我想我对不同 Preferences
之间的关系感到困惑实例、Java 类 (useNodeForPackage(Class<?>)
???) 和最终用户。所以我问:每个构造函数/工厂方法的作用有何不同,何时使用它们?
提前致谢!
最佳答案
是的,数据是持久的。不,它不会必须将它们写入文件。存储方法是实现定义的,它可以将它们存储在远程数据库、注册表或二进制文件附带的实际文件中。在 Windows 上,默认实现写入注册表。 (这写在您链接的 API 文档的顶部)
Preferences p = new Preferences();
这不能像@ojota84 在他们的帖子中提到的那样直接调用,它被下面的工厂方法使用:
Preferences p = Preferences.userNodeForPackage(this.getClass());
这允许 Preferences
实现返回 Preferences
特定于给定类并且不干扰其他类的首选项的对象。在 Windows 上,这通常返回 Preferences
将 key 存储到 HKU\Software\JavaSoft\Prefs\myapplication\myclass\
中的对象.在 XML 支持的文件中,这可能对应于 <myapplication><myclass>-data here-</myclass></myapplication>
.
Preferences p = Preferences.userRoot();
这与上面的类似,但返回所有用户首选项的根对象。如果您认为偏好排列成一棵树。那么这是有道理的。在 Windows 上,这通常用 HKU\Software\JavaSoft\Prefs\myapplication\
实现. XML 类比是您将访问 <myapplication>-data here-</myapplication>
.
userRoot()
之间进行选择和 userNodeForPackage()
本质上这是一个偏好问题(双关语不是故意的)。如果您只需要存储一个或两个 key ,userRoot()
将在您的注册表中创建更少的条目。如果您需要编写很多很多 key ,那么 userNodeForPackage()
可能更好,因为您可以避免名称冲突和其他问题。无论是 XML 文件、数据库还是 Windows 注册表,您还可以获得更清晰的结构来支持您的偏好。
关于Java util 首选项构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16361188/
我在这个网站上发布的代码有这个问题 https://developers.google.com/drive/quickstart-cs是 Google Drive 快速入门的开发人员站点。我按照网站上
我正在尝试制作一个非常简单的 Kafka Producer,目前正在关注 producer example除了我的制作人没有分区程序类。 将所需文件导出到 jar 后,我将它们传输到我的 Linux
问题 在java中,我有一个“Util项目”,在进行单元测试时使用另一个“Mock项目”。 我的问题是“模拟项目”也使用“Util项目”来构建一些模拟对象。 当我使用 Maven 构建项目时,我无法构
据我所知,这些包已经存在很长时间了。但是,我从未见过它们的实际用法。而且这些包似乎不成熟,不再维护。如果是,为什么这些包现在存在? 最佳答案 包裹automata被 scala.xml.dtd 使用,
关闭。这个问题需要debugging details .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 1年前关闭。 Improve this question Co
在java.util.Collections中,有一个方法: public static void fill(List list, T obj) 用第二个参数指定的对象填充第一个参数指定的List。
我不明白它要我做什么。分配给 sentence正在工作: val sentences : java.util.List[CoreMap] = document.get(classOf[Sentence
在我的 React 应用程序中,我想使用一些实用程序。我见过两种不同的方法。第一个是,只是创建函数并将其导出。第二个是,创建一个 Util 类并导出一个对象,这样它就不能被实例化(静态类)。 clas
我有一个 util 类,它接受 String jwtToken 和 Key key 并使用 io.jsonwebtoken.jwts 解码 jwt。 但是,我无法对此进行测试。原因是,我无法模拟公钥并
我有使用目标命名空间的专有架构 xmlns:ax216="http://util.java/xsd" 这给我带来了从 java (java.util.xsd) 开始生成禁止的(由 Java 安全管理器
我正在阅读集合以查看 Javadocs 中的实现层次结构。 Collections声明为public class Collections extendds Object Collection声明为pu
我正在使用 Spring-boot 应用程序,我可以在其中连接 Azure 应用程序配置。但是当我尝试使用内容类型应用程序/JSON 读取值时出现错误。 我的Java类 @ConfigurationP
我正在使用 Spring-boot 应用程序,我可以在其中连接 Azure 应用程序配置。但是当我尝试使用内容类型应用程序/JSON 读取值时出现错误。 我的Java类 @ConfigurationP
我在使用格式说明符时遇到问题。这是否意味着我正在使用 %d? public static void main(String[] args) { double y, x; for (x =
鉴于此代码 import java.util.Iterator; private static List someList = new ArrayList(); public static void
我正在 HackerEarth 解决问题,我无法弄清楚为什么我的程序在命令行上正确运行并给出正确的结果,但在代码编辑器上运行时却给出 java.util.NoSuchElementException
我正在尝试使用以下代码使用对象列表列表中的数据填充tableModel readExcel.readSheet(0): TableModel tableModel = new DefaultTabl
java.util.Set 、 java.util.List 和其他 Collection 接口(interface)不可序列化。需要一个简单、直接的解决方案来在可序列化的 POJO 中使用它。 pu
我试图从 servlet 返回数据库搜索结果的 ArrayList 以显示在 jsp 页面上。 在servlet中设置arraylist作为请求的属性,并将请求转发到jsp页面。当我尝试在 jsp 页
我是android新手,最近我试图从firebase中提取数据到recyclerview/cardview中以垂直布局显示数据,它显示将Hashmap转换为Arraylist的错误,其中代码是:
我是一名优秀的程序员,十分优秀!