我有一个方法,我无法更改,它采用T[]
数组。
我需要“toString()
”数组的[i]
元素,而不是事先知道T
的类型。
对于所有对象,我可以调用toString()
但T[]
可以是基元数组,这没有意义:
int i = 0;
i.toString(); // nonsense
我该怎么办?
答案 0 :(得分:5)
回应:
T []可能是一个基元数组,这没有意义
泛型类型不能是基元,这可以保证数组始终是一个对象数组。由于每个对象都延伸Object
,因此它将采用toString
方法。
答案 1 :(得分:2)
泛型类型不能是原始类型。问题不存在。
答案 2 :(得分:2)
泛型不能与原始类型一起使用。因此,T[]
不能是基元数组。因此,当arr[i].toString()
类型为arr
时,您随时可以致电T[]
。
答案 3 :(得分:1)
编译器将允许.toString()
调用,这应该是一个很好的线索,它将实际工作。只有当Java编译器不允许你的时候,才能考虑如何做到这一点。这就是Java中的事物顺序。