请使用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中的一个参数''

这是我的第一个问题,如果我错过了某些事情或不清楚的事情,非常感谢您提供反馈。

最佳答案

这与泛型无关。用

this.value


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

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

10-07 16:51