在java中打印参数化类型的值

时间:2014-10-17 02:47:26

标签: java generics

请耐心等待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中的一个参数''

这是我在这里的第一个问题,如果有我想念的事情或不清楚的事情,非常感谢反馈。

1 个答案:

答案 0 :(得分:2)

这与泛型无关。与

this.value

您可能是指您传递给GenericBox构造函数的OrderedPair对象。此类(GenericBox)不得具有声明的toString()方法。因此,它继承并使用Object#toString()

由开发人员编写自己的toString()实现并返回他们认为合适的任何String值。 Here's what the official tutorials have to say.