导入 - > '找不到符号' |完全限定名称 - >完善

时间:2014-10-24 22:17:33

标签: java eclipse gradle

我有一个内部类,它扩展了AbstractTableModel。

import javax.swing.table.AbstractTableModel;

public class MyClass extends MyAbstractClass {
    ...
    public static class MyTableModel extends AbstractTableModel {
    }
    ...
}

编译器给出了以下错误。

...\MyClass.java:190: error: cannot find symbol
         public static class MyTableModel extends AbstractTableModel {
                                                  ^
  symbol:   class AbstractTableModel
  location: class MyClass

更改时

MyTableModel extends AbstractTableModel

MyTableModel extends javax.swing.table.AbstractTableModel

一切正常。

我使用Gradle来构建项目。在我切换到Gradle之前,我使用Eclipse来构建项目。我没有Eclipse的问题,只有在我使用Gradle构建时才会出现错误。

你知道这种奇怪行为可能是什么原因吗?

1 个答案:

答案 0 :(得分:4)

错误是由我的导入订单造成的。 MyTableModel包含一个MyTableListener接口,该接口也由MyClass.java导入。

import MyClass.MyTableModel.MyTableListener;
...
import javax.swing.table.AbstractTableModel;
...
public class MyClass extends MyAbstractClass {
...
   public static class MyTableModel extends AbstractTableModel {
       public interface MyTableListener {
           public void entryChanged();
       }
       ...
   }
...
}

当我在AbstractTableModel导入之前放入MyTableListener导入时Gradle给我找不到符号错误。

当我在MyTableListener导入之前放入AbstractTableModel导入时,Everythings工作正常。

到目前为止一切顺利,但为什么在使用Eclipse构建时导入顺序不成问题?!