当前位置: 首页 > 知识库问答 >
问题:

Java是否有类似于Cocoa的NSUserDefaults的东西?

温浩大
2023-03-14

Mac OS X和iOS有一个名为NSUserDefaault的不错的小类。它是一个单例,可让您存储字符串、数组和原语,并且您始终可以实现一些方法来向其添加自定义对象。当您需要存储快速设置而无需处理文件操作(例如,存储最后选择的字体名称)时,它非常有用。

Java有类似这样简单的东西吗?我希望能够存储用户的最后设置,以便在程序重新加载时重新加载类似的状态,但我不确定在Java中最好的方法是什么。

共有2个答案

徐奇逸
2023-03-14

不。最接近的是属性文件系统。您可以拥有一个属性文件(它是一个键值文件)。通常,它们需要在您运行的java程序的类路径中。您还可以在文件系统中任何您想要的地方创建属性文件(或xml文件)(比如一个已知的好地方)。NSUserDefaults使用类似p-list的东西存储在您的主目录库中,使用标准命名目录路径。你必须在Java中提出自己的标准。

陈泰宁
2023-03-14

是的,您可以使用java.util.prefsAPI。如何在Java中保存首选项用户设置?在java应用程序中保存用户设置的最佳方法是什么?有一些有用的信息。让您开始:

[[NSUserDefaults standardUserDefaults] setString:@"some string" forKey:@"some_key"];

变成

Preferences prefs = Preferences.userNodeForPackage(this);
prefs.put("some_key", "some string");

[[NSUserDefaults standardUserDefaults] stringForKey:@"some_key"];

变成

Preferences prefs = Preferences.userNodeForPackage(this);
prefs.get("some_key");
 类似资料:
  • 问题内容: C#属性(我的意思是get和set方法)是一个非常有用的功能。Java是否也具有类似于C#属性的内容。我的意思是我们如何在Java中实现类似以下C#代码的内容: 问题答案: 不,Java没有等效性。它只有访问器和更改器方法,以及getter和setter方法的奇特名称。例如:

  • 问题内容: 我想检查一个对象是否是类的实例或的子类。 例如,如果is是类,我想成为并且也要成为。 我希望它也适用于装箱的原始类型。例如,如果是那么应该是。 有这样的事吗?如果没有,如何实现这种方法? 问题答案: Class.isInstance可以满足您的需求。 当然,如果可以使用它,则不应该使用它,但是对于反射场景,它通常派上用场。

  • Java有Future或FutureTask,可以在新线程中运行任务。然后,将执行结果返回到原始线程。Swift中是否有任何功能可以实现这一点?

  • 问题内容: 在C#中,您可以将一个类标记为,以便只能从同一包中对其进行访问。Java有什么类似的东西吗? 问题答案: 您可以通过从类的声明中省略安全修饰符(公共,私有)来创建程序包专用类。

  • 问题内容: 是否有与Java或JVM语言的Python virtualenv类似的东西? 问题答案: 据我了解,virtualenv使您能够拥有单独的库安装路径,从而有效地分隔“虚拟” Python安装。 Java没有“系统范围内已安装”库(*)的概念:它总是在类路径中搜索要加载的库。由于可以为每个应用程序定义类路径(并且需要将其定义!),因此每个应用程序都可以选择要加载的库和版本。 如果您更深入

  • 问题内容: 开始使用C#学习LINQ。 尤其是LINQ to Objects和LINQ to XML。 我真的很喜欢LINQ的强大功能。 我了解到有一种叫做JLINQ的JavaScript实现。 此外(如Catbert所言),Scala将具有LINQ 您知道LINQ或类似的东西是否将成为Java 7的一部分吗? 更新:2008年的有趣帖子-LINQ forJava工具 问题答案: 看一下Scala