0

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

清单声明如下:

TIntArrayList list= new TIntArrayList();

但是,我面临一个无法解释的编译错误。当我如下声明列表时:

import gnu.trove.list.array.TIntArrayList;

public class Main {

   TIntArrayList list= new TIntArrayList();
}

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

import gnu.trove.*; 

public class Main {

    TIntArrayList list= new TIntArrayList();
}

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

我想知道为什么会出现这个错误?我认为通过使用*列表应该得到认可。java.util.*;使用 代替时不会出现此错误java.util.arrayList;

4

2 回答 2

6

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

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

于 2013-08-12T21:40:12.563 回答
1

.*添加仅适用于表示该包名称的目录中的所有类。Java 包名并不是真正的目录,目录只是用来组织类。

于 2013-08-12T21:41:18.717 回答