Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Почему иногда @Override идет в отказ


Автор: Killer_13 26.5.2011, 11:19
Не могу понять почему иногда нужно комментировать @Override - потому что выдает ошибку. Хотя сам еклипс говорит, что метод должен быть @Override и тут же делает обратное.
К примеру, вот в этом классе. спросил препода. - препод без понятия. Может здесь кто знает? Спасибо за ответы.
Код

import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;

public class MyButton extends JButton implements ActionListener {
    
    private Integer cnt = new Integer(0);
    private String label;
    
    public MyButton(int w, int h){
        super("0");
        this.addActionListener(this);
        setSize(w, h);
        
    }

    @Override
    public void actionPerformed(ActionEvent e) { //если так, то здесь сигналит ошибку The method actionPerformed(ActionEvent) of type MyButton must override a superclass method //если ебирается @Override - ошибка исчезает и все нормально работет
        setText("" + (++cnt));//??????
    }
}


Автор: LSD 26.5.2011, 11:36
До JDK 1.6 @Override можно было аннотировать только методы переопределенные из супер классов (как абстрактные так и нет). А вот имплементированные методы из интерфейсов (в твоем случае это actionPerformed()) аннотировать так было нельзя. Начиная с JDK 1.6 @Override это ограничение снято.

Так что тебе остается проверить какую версию JDK ты используешь и language level в IDE.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)