编译错误,列表无法识别

时间:2013-08-12 21:38:38

标签: java import

我正在使用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;时,不会显示此错误。

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:1)

.*添加仅计算表示该包名称的目录中的所有类。 Java包名称实际上不是目录,目录只用于组织类。