开发者

Different behaviour of @Override in OnPreferenceChangeListener.onPreferenceChange method of Android 2.2 application depending on source code level

开发者 https://www.devze.com 2023-01-06 15:24 出处:网络
I\'m developing Android 2.2 application and I\'m going to use Preference.OnPreferenceChangeListener interface.

I'm developing Android 2.2 application and I'm going to use Preference.OnPreferenceChangeListener interface.

I've added the following piece of code to my preference activity:

Preference somePref = findPreference(SOME_PREF);
    somePref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

                @Override
           开发者_运维技巧     public boolean onPreferenceChange(Preference preference,
                        Object newValue) {
                    // some code here
                    return true;
                }
            });

If I use 1.6 Java compiler with 1.6 source code level, then everything is perfectly fine. But if I change the level of source code to 1.5 then I've got an error message:

The method onPreferenceChange(Preference, Object) of type new Preference.OnPreferenceChangeListener(){} must override a superclass method

The question is: why?


It's because in Java 6 @Override annotations could be applied to implementation of interface methods and methods overriding method from super class. In Java 5 at the other hand @Override can only be applied to overriding methods.

0

精彩评论

暂无评论...
验证码 换一张
取 消