我正在使用Trove集合,更具体地说,它是用于int的原始arrayList.
该清单的声明如下:
TIntArrayList list= new TIntArrayList();
Run Code Online (Sandbox Code Playgroud)
但是,我面临编译错误我无法解释.当我声明列表如下:
import gnu.trove.list.array.TIntArrayList;
public class Main {
TIntArrayList list= new TIntArrayList();
}
Run Code Online (Sandbox Code Playgroud)
,代码按预期正确运行.但是,当我声明列表(具有不同的import语句)时,如下所示:
import gnu.trove.*;
public class Main {
TIntArrayList list= new TIntArrayList();
}
Run Code Online (Sandbox Code Playgroud)
,出现关于无法识别TIntArrayList的编译错误.
我想知道为什么会出现这个错误?我认为通过使用*列表应该得到认可.java.util.*;使用时不会出现此错误java.util.arrayList;.
不同之处在于*不导入子级别,而只导入当前级别的所有内容.如果您使用过import gnu.trove.list.array.*,它将按预期工作.
它的工作原因java.util.*是因为ArrayList该类与通配符位于同一文件夹中.