我正在使用Trove集合,更具体地说,它是用于int的原始arrayList。

列表的声明如下:

TIntArrayList list= new TIntArrayList();


但是,我遇到无法解释的编译错误。当我声明列表如下时:

import gnu.trove.list.array.TIntArrayList;

public class Main {

   TIntArrayList list= new TIntArrayList();
}


,代码将按预期正确运行。但是,当我声明列表(使用不同的import语句)时,如下所示:

import gnu.trove.*;

public class Main {

    TIntArrayList list= new TIntArrayList();
}


,出现有关无法识别TIntArrayList的编译错误。

我想知道为什么会出现此错误?我认为使用*可以识别该列表。当使用java.util.*;代替java.util.arrayList;时,不会出现此错误。

最佳答案

区别在于*不会导入子级别,而只会导入当前级别中的所有内容。如果使用import gnu.trove.list.array.*,它将按预期工作。

它在java.util.*上起作用的原因是因为ArrayList类与通配符位于同一文件夹中。

关于java - 编译错误,无法识别列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18197088/

10-11 03:35