Что произойдет, когда я дважды вызову два класса Class.getInstance в том же методе?Что произойдет, когда я вызову Class.getInstance для уже созданного класса?
Например:
private void widgetListeners() {
notifyNews.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (notifyNews.isChecked()) {
FirebaseMessaging.getInstance().subscribeToTopic(getString(R.string.news_subscriber));
} else {
FirebaseMessaging.getInstance().unsubscribeFromTopic(getString(R.string.news_subscriber));
}
return true;
}
});
notifyVersion.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (notifyVersion.isChecked()) {
FirebaseMessaging.getInstance().unsubscribeFromTopic("Version");
} else {
FirebaseMessaging.getInstance().unsubscribeFromTopic(Version"));
}
return true;
}
});
}
Будет лучше, если я позвоню FirebaseMessaging.getInstance()
один раз в верхней части тела widgetListeners()
метода и сохранить его в переменной или я просто позвонить в каждом onPreferenceChange
или я придерживаюсь того, что я вы уже сделали выше?
Примечание: Я называю widgetListeners()
в onCreateView
фрагмента, который расширяет класс PreferenceFragment
.
'getInstance' - это то, что вы реализуете, поэтому оно будет вести себя, как вы хотите. Может быть, вы путаете его с методом 'newInstance()'? – alfasin
Возможный дубликат [Разница между вызовом new и getInstance()] (http://stackoverflow.com/questions/3170159/difference-between-calling-new-and-getinstance) – alfasin
Как сказал @alfasin, это зависит от реализации 'getInstance()', например ['Calendar.getInstance()'] (https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html#getInstance--) всегда будет возвращать экземпляр * new *, тогда как ['LayoutStyle.getInstance()'] (https://docs.oracle.com/javase/8/docs/api/javax/swing/LayoutStyle.html#getInstance--) всегда возвращает один и тот же общий экземпляр. – Andreas