@Override在Android 2.2应用程序的OnPreferenceChangeListener.onPreferenceChange方法中的不同行为,具体取决于源代码级别

时间:2010-07-08 11:22:47

标签: java android

我正在开发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)方法必须覆盖超类方法

问题是:为什么?

1 个答案:

答案 0 :(得分:3)

这是因为在Java 6中@Override注释可以应用于从超类中重写方法的接口方法和方法的实现。另一方面,在Java 5中,@Override只能应用于覆盖方法。