请耐心等待java。
我试图理解泛型一直是顺利的,直到我来到这里:
Pair<Integer, GenericBox<String>> p2 = new OrderedPair<>(1, new GenericBox<>("Parametized Type");
p2.print();
打印方式:
public void print() {
System.out.println(this.key + ", " + this.value);
}
除非我使用参数化类型参数,否则它可以正常工作。
示例输出:
1, GenericBox@41171d93
预期产出:
1, Parametized Type
试过这个:How to get type parameter values using java reflection?但它只给了我K这是OrderedPair中的一个参数''
这是我在这里的第一个问题,如果有我想念的事情或不清楚的事情,非常感谢反馈。
答案 0 :(得分:2)
这与泛型无关。与
this.value
您可能是指您传递给GenericBox
构造函数的OrderedPair
对象。此类(GenericBox
)不得具有声明的toString()
方法。因此,它继承并使用Object#toString()
。
由开发人员编写自己的toString()
实现并返回他们认为合适的任何String
值。 Here's what the official tutorials have to say.