gpt4 book ai didi

java - 通用静态工厂方法问题

转载 作者:行者123 更新时间:2023-11-30 05:09:20 24 4
gpt4 key购买 nike

我有如下类(class):

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>();
}
}

现在我在另一个类(class)尝试这个:

public class TestClass {
public void test() {
Tree<Integer> tree = Tree.newInstance(); // fail
}
}

但是当我使用公共(public)构造函数时,以下代码可以正常工作

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

最佳答案

BalusC 评论 - javac 错误。

通过显式输入解决:

Tree<Integer> tree = Tree.<Integer>newInstance();

关于java - 通用静态工厂方法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4010786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com