У меня есть класс, подобный следующему:
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>
Теперь странность : Вы можете попробовать это сами.Этот код работает с моим Eclipse 3.6 Helios, но не с моим NetBeans 6.9.1.Я не могу поверить, что это проблема IDE (я даже использую один и тот же JDK для обоих) ... Идеи?: O