Problem with @Override annotation

不想你离开。 提交于 2019-12-24 05:31:36

问题


I am making a Java application similar to that of the Banko applet. I was coming along just fine when I hit the "public void init()" method. When I was finished, everything compiled except for that. It told me to add an @Override annotation. I tried that, but whenever I do, regardless of where I put it, the compiler fails with the following error:

cannot find symbol

symbol: class Overrides

location: class aBomb.Bomb

I have no idea what could be preventing the application from executing properly. :| If you find something in the code I have written below that you think should be changed, please tell me. I'm relatively new to Java :( Code:

public void init() {
    BorderLayout border = new BorderLayout();
    setLayout(border);

    JPanel top = new JPanel();
    JLabel moneyLabel = new JLabel("Money : $");
    moneyField = new JTextField("", 8);
    moneyField.setEditable(false);
    JLabel foundLabel = new JLabel("Found: ");
    foundField = new JTextField("", 8);
    foundField.setEditable(false);

    restart = new JButton("Restart");
    restart.addActionListener(this);
    top.add(moneyLabel);
    top.add(moneyField);
    top.add(foundLabel);
    top.add(foundField);
    top.add(restart);
    add(top, BorderLayout.NORTH);

    board = new Board(this, ROW_COUNT, COLUMN_COUNT, BOMB_COUNT);
    add(board, BorderLayout.CENTER);
    setup();
    setVisible(true);
}

回答1:


First of all, it would really help if you'd included at least the class definition (the "public class..." part.)

I'm guessing that you have a class named aBomb which extends from Applet:

public class aBomb extends Applet {
//...
    // Here's the init method; the @Override goes
    // immediately before the declaration.
    @Override
    public void init() {
//...
};

The error message looks as if you misspelled @Override as @Overrides.




回答2:


The annotation class you are trying to use is java.lang.Override. This is imported by default.

Check the following:

  • The annotation is @Override but the error message says that you spelled it as @Overrides. Check your source code for a spelling / typing error.

  • You are using Java 5.0 or later.

  • You have not used the -source or -target compilation switches to compile for an older version of Java.

  • You are not using -bootclasspath (or whatever) to compile against a non-standard class library.




回答3:


The annotation is called @Override, not @Overrides. It goes in front of the overriding method, like:

@Override
public void init() {
   ...


来源:https://stackoverflow.com/questions/4456603/problem-with-override-annotation

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!