有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何灵活地使用通用对象?

我想用一个名为SecurePreferences的类(它是this的修改版本)替换我Android应用程序中的SharedPreferences。如何灵活地调用其中一个实例的方法

例如:

SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
SecurePreferences securePref = new SecurePreferences(sharedPref, "", key, true);
...
public void loadSettings() {
    Object pref;
    if (Settings.usingEncryptedPreferences) {
        pref = securePref;
    } else {
        pref = sharedPref;
    }
    boolean musicEnabled = pref.getBoolean("musicEnabled", true);
    boolean soundEnabled = pref.getBoolean("soundEnabled", true);
    boolean vibrationEnabled = pref.getBoolean("vibrationEnabled", true);
    // and so on
}

SharedPreferencesSecurePreferences都有一个getBoolean方法。但是Android Studio告诉我Cannot resolve method 'getBoolean(Java.lang.String, boolean)'


共 (1) 个答案

  1. # 1 楼答案

    错误是由pref变量的类型引起的。对象类没有getBoolean方法。可以有很多解决方案。例如:如果SecurePreferences扩展了SharedReferences接口(或实现了它),那么pref变量的类型应该是SharedReferences