gpt4 book ai didi

java - 如何从首选项同步 getter 和 setter?

转载 作者:行者123 更新时间:2023-12-02 08:44:58 26 4
gpt4 key购买 nike

使用 Java 我正在使用 Preferences 来存储一些应用程序数据。我想在运行时将配置存储在变量中。但是当我需要设置一个值时,如何实现同步呢?

这只是一个非常简单的例子来理解我的问题:

public class Configuration {

private static Preferences preferences = Preferences.userRoot().node("nodeName");


private boolean isDarkMode;

public Configuration() {
// Get boolean value or return false if it does not exist
this.isDarkMode = preferences.getBoolean("DARK_MODE", false);
}

//User changes setting to dark mode and the program needs to set the value to store it
//TODO How can I synchronize this method?
public static void setDarkMode(boolean b) {
preferences.putBoolean("DARK_MODE", b);
this.isDarkMode = b;
}

public static boolean isInDarkMode() {
return isDarkMode;
}
}

据我了解,仅将 synchronized 写入 getter 和 setter 是不正确的,是吗?什么是有效的解决方案?

最佳答案

Preferences 是线程安全的,可以从多个线程访问,无需同步共享资源。您可以在写入时调用flush()以确保立即进行更改。无需创建像 isDarkMode 这样的类成员,而是直接引用 Preferences。

关于java - 如何从首选项同步 getter 和 setter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61141428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com