0

我有一个方法,我不能改变,它需要一个T[]数组。

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

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

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

我能做些什么?

4

4 回答 4

6

回应:

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

泛型类型不能是基元,这保证了数组始终是对象数组。由于每个对象都扩展Object它会有一个toString方法。

于 2013-01-19T21:17:12.723 回答
2

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

于 2013-01-19T21:17:17.703 回答
2

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

于 2013-01-19T21:17:21.447 回答
1

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

于 2013-01-19T21:19:18.067 回答