Java泛型类型T toString()

时间:2013-01-19 21:15:50

标签: java generics

我有一个方法,我无法更改,它采用T[]数组。

我需要“toString()”数组的[i]元素,而不是事先知道T的类型。

对于所有对象,我可以调用toString()T[]可以是基元数组,这没有意义:

int i = 0;
i.toString(); // nonsense

我该怎么办?

4 个答案:

答案 0 :(得分:5)

回应:

  

T []可能是一个基元数组,这没有意义

泛型类型不能是基元,这可以保证数组始终是一个对象数组。由于每个对象都延伸Object,因此它将采用toString方法。

答案 1 :(得分:2)

泛型类型不能是原始类型。问题不存在。

答案 2 :(得分:2)

泛型不能与原始类型一起使用。因此,T[]不能是基元数组。因此,当arr[i].toString()类型为arr时,您随时可以致电T[]

答案 3 :(得分:1)

编译器将允许.toString()调用,这应该是一个很好的线索,它将实际工作。只有当Java编译器允许你的时候,才能考虑如何做到这一点。这就是Java中的事物顺序。