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
}
SharedPreferences
和SecurePreferences
都有一个getBoolean
方法。但是Android Studio告诉我Cannot resolve method 'getBoolean(Java.lang.String, boolean)'
# 1 楼答案
错误是由pref变量的类型引起的。对象类没有getBoolean方法。可以有很多解决方案。例如:如果SecurePreferences扩展了SharedReferences接口(或实现了它),那么pref变量的类型应该是SharedReferences