我第一次使用 Apache Commons,主要是因为我想访问他们的 HashBag 类。我将概述我所遵循的整个过程,以帮助查明问题。
首先,我下载了 Apache Commons Collections 的当前版本 (3.2.1)。 http://commons.apache.org/collections/download_collections.cgi
然后我将文件解压缩commons-collections-3.2.1.jar
到磁盘上的一个文件夹中,并将该文件夹添加到我的系统%CLASSPATH%
环境变量中,以便我可以将类导入到我的 Java 程序中。
这个测试程序说明了我遇到的问题。
import org.apache.commons.collections.bag.HashBag;
public class test {
public static void main(String[] args) {
HashBag test = new HashBag();
System.out.println(test.getClass().getName());
System.out.println(test.uniqueSet().getClass().getName());
}
}
第一个输出行说明org.apache.commons.collections.bag.HashBag
这是预期的。
第二个输出行说明org.apache.commons.collections.set.UnmodifiableSet
了这不是预期的。根据文档HERE,该uniqueSet()
方法继承自超类和接口,但在这两种情况下,该方法都应该返回一个java.util.Set
. 为什么它在这里返回不同的东西?
谢谢!