我正在使用Trove集合,更具体地说,它是用于整数的原始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;
时,不会显示此错误。
答案 0 :(得分:6)
不同之处在于*
不导入子级别,而只导入当前级别的所有内容。如果您使用import gnu.trove.list.array.*
,它会按预期工作。
它在java.util.*
上工作的原因是因为ArrayList
类与通配符位于同一文件夹中。
答案 1 :(得分:1)
.*
添加仅计算表示该包名称的目录中的所有类。 Java包名称实际上不是目录,目录只用于组织类。