我正在开发Android 2.2应用程序,我将使用 Preference.OnPreferenceChangeListener 界面。
我已将以下代码添加到我的偏好活动中:
Preference somePref = findPreference(SOME_PREF);
somePref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference,
Object newValue) {
// some code here
return true;
}
});
如果我使用1.6源代码级别的1.6 Java编译器,那么一切都很好。但是,如果我将源代码的级别更改为1.5,那么我会收到一条错误消息:
new Preference.OnPreferenceChangeListener(){}类型的onPreferenceChange(Preference,Object)方法必须覆盖超类方法
问题是:为什么?
答案 0 :(得分:3)
这是因为在Java 6中@Override
注释可以应用于从超类中重写方法的接口方法和方法的实现。另一方面,在Java 5中,@Override
只能应用于覆盖方法。