import - >'找不到符号'| 完全合格的名字 - >完美

Bil*_*lbo 5 java eclipse gradle

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

import javax.swing.table.AbstractTableModel;

public class MyClass extends MyAbstractClass {
    ...
    public static class MyTableModel extends AbstractTableModel {
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

编译器给我以下错误.

...\MyClass.java:190: error: cannot find symbol
         public static class MyTableModel extends AbstractTableModel {
                                                  ^
  symbol:   class AbstractTableModel
  location: class MyClass
Run Code Online (Sandbox Code Playgroud)

改变时

MyTableModel extends AbstractTableModel
Run Code Online (Sandbox Code Playgroud)

MyTableModel extends javax.swing.table.AbstractTableModel
Run Code Online (Sandbox Code Playgroud)

一切正常.

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

你知道这种奇怪行为的原因是什么?

Bil*_*lbo 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();
       }
       ...
   }
...
}
Run Code Online (Sandbox Code Playgroud)

当我将 MyTableListener 导入放在 AbstractTableModel 导入 Gradle 之前时,会出现找不到符号错误。

当我将 AbstractTableModel 导入放在 MyTableListener 导入之前时,一切正常。

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