作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用一个名为 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 告诉我无法解析方法“getBoolean(Java.lang.String, boolean)”
。
最佳答案
该错误是由您的 pref 变量的类型引起的。对象类没有 getBoolean 方法。可以有多种解决方案。例如:如果 SecurePreferences 扩展 SharedPreferences 接口(interface)(或实现它),则 pref 变量的类型应为 SharedPreferences。
关于java - 如何灵活使用泛型对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29186674/
我是一名优秀的程序员,十分优秀!