我有如下课程:
public class Tree<T extends Comparable<? super T>> {
// private data omitted
private Tree() {} // non parametric private constructor, not exposed
// static factory method
public static <T extends Comparable<? super T>> Tree<T> newInstance() {
return new Tree<T>();
}
}
现在我从另一个班级开始尝试:
public class TestClass {
public void test() {
Tree<Integer> tree = Tree.newInstance(); // fail
}
}
但是当我使用公共构造函数时,下面的代码工作得很好
public void test() {
Tree<Integer> tree = new Tree<Integer>();
}
我可能做错了什么?
以下是错误消息:
Incompatibile types:
required: structures.trees.Tree<java.lang.Integer>
found: <T>structures.trees.Tree<T>
现在
怪诞
:你可以自己试试这个。这段代码确实适用于我的Eclipse3.6 Helios,但不适用于我的NetBeans 6.9.1。我不敢相信这是IDE的问题(我甚至对两者都使用相同的JDK)。一个想法?o