为什么我在返回sharePreferenceUtils时出错

时间:2018-10-18 03:52:17

标签: java android xml android-studio

我不知道为什么它不能让我返回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, "");
    }
}

2 个答案:

答案 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 。这就是问题所在。