好的,所以我会尽量让这个问题更简单一点。
这个问题的核心更多地是关于何时使用静态方法,但是在通过什么是静态方法与实例方法的要点理论概念之后,我想要一个更实用/实施建议,使用如下所述的现实世界问题。
- 我有一个处理设置和获取共享首选项的 andoid 类(MyPreferences)。
- 我在 MyPreferences 的构造函数中注册了一个自定义侦听器,它显示每次更改时更改的首选项。
- 构造函数也有共同的东西: settings = ctx.getSharedPreferences(MyConfig.NAME_SHARED_PREFERENCES, 0); 编辑器 = settings.edit(); settings.registerOnSharedPreferenceChangeListener(listener);
现在正如我之前提到的,MyPreference 有 10 个函数可以获取/更新共享首选项键...
public static void setPrefsIsAppEnabled(Boolean boolValue) {
editor.putBoolean(MyConfig.PREFS_IS_APP_ENABLED, boolValue);
editor.commit();
}
public static boolean getPrefsIsAppEnabled()
{
return settings.getBoolean(MyConfig.PREFS_IS_APP_ENABLED, false);
}
现在我使用静态方式(即 MyPreferences.getPrefsIsAppEnabled()
好吧,这显然会引发错误,因为没有调用具有共享首选项对象的初始化的构造函数。
我的问题:在访问 getter 和 setter 方法之前,让所有这 10 个方法都非静态并在我的项目中实例化 MyPreference 是否是一个更好的逻辑,或者我应该将构造函数中存在的代码移动到所有 setter/getter 函数中并重复在调用 MyPreferences 类的方法之前,它无处不在。请通过说明您建议该解决方案的原因来帮助我更清楚地理解。
我知道这是一个非常n00b的问题。请原谅我。我对 Java 很陌生,所以只是建立我的概念。