我不知道为什么它不能让我返回sharePreferenceUtils。有一个更好的方法吗?我收到错误“不兼容的类型”
private static String Preference_NAME = "CodeLotto";
private static SharePreferenceUtils sharePreferenceUtils;
private SharedPreferences sharedPreferences;
private SharePreferenceUtils(Context context){
Preference_NAME = Preference_NAME + context.getPackageName();
this.sharedPreferences = context.getSharedPreferences(Preference_NAME, Context.MODE_PRIVATE);
}
public static SharedPreferences getInstance(){
if (sharePreferenceUtils == null) {
sharePreferenceUtils = new SharePreferenceUtils(MyApp.getContext());
}
return sharePreferenceUtils;
}
public void saveString(String key, String Val){
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, Val);
editor.commit();
}
public String getString(String key, String defVal){
return sharedPreferences.getString(key, defVal);
}
public String getString(String key){
return sharedPreferences.getString(key, "");
}
}
答案 0 :(得分:1)
您正在使用SharedPreferences作为getInstance方法的返回类型,并返回一个SharePreferenceUtils实例。除非它们受到某种多态性的束缚,否则这就是问题所在。
答案 1 :(得分:0)
将getInstance()方法更改为以下代码片段,您将获得Return SharedPreferenceUtils。
public static SharePreferenceUtils getInstance(){
if (sharePreferenceUtils == null) {
sharePreferenceUtils = new SharePreferenceUtils(MyApp.getContext());
}
return sharePreferenceUtils;
}
方法的返回类型为 SharedPreferences 。这就是问题所在。