一个泛型程序问题

allysniper8592 2009-08-19 01:03:14
import java.lang.reflect.Array;
import java.util.Arrays;

public class ArrayMaker<T> {
private Class<T> kind;

public ArrayMaker(Class<T> kind) {
this.kind = kind;
}

@SuppressWarnings("unckecked")
T[] create(int size) {
return (T[]) Array.newInstance(kind, size);
}

public static void main(String[] args) {
ArrayMaker<String> stringMaker = new ArrayMaker<String>(String.class);
String[] stringArray = stringMaker.create(10);
System.out.println(Arrays.toString(stringArray));
}
}
ouput:[null, null, null, null, null, null, null, null, null, null]

为什么输出全是NULL?我知道是因为擦除,但是不明其中细节。。
...全文
70 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZangXT 2009-08-19
  • 打赏
  • 举报
回复
这不是泛型的问题。
你创建了数组,但是没有创建数组中的对象。
就像
String[] strs = new String[10];
一样的原因。
bigbug9002 2009-08-19
  • 打赏
  • 举报
回复
和擦除没有关系吧。
你创建了一个String数组,但数组中的元素没有赋值,输出当然是null
ThirstyCrow 2009-08-19
  • 打赏
  • 举报
回复
不是Null是什么?你有没给它们赋值。这跟擦除一点关系都没有。
临碣 2009-08-19
  • 打赏
  • 举报
回复
你没给指定值,当然是null

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧