猿问

为什么我在返回 sharePreferenceUtils 时出现错误

我不明白为什么它不会让我返回 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, "");

    }

}


绝地无双
浏览 176回答 2
2回答

幕布斯6054654

您使用 SharedPreferences 作为 getInstance 方法的返回类型,并返回一个 SharePreferenceUtils 实例。除非它们受到某种多态性的约束,否则就错了。

繁星点点滴滴

将您的 getInstance() 方法更改为以下代码片段,您将获得返回 SharedPreferenceUtils。public static SharePreferenceUtils getInstance(){        if (sharePreferenceUtils == null) {            sharePreferenceUtils = new SharePreferenceUtils(MyApp.getContext());        }       return sharePreferenceUtils;    }您的方法的返回类型是SharedPreferences这就是问题所在。
随时随地看视频慕课网APP

相关分类

Java
我要回答