serendipity
关于JAVA不支持泛型数组的一点疑惑
请先看这篇博文:
http://www.blogjava.net/deepnighttwo/articles/298426.html
文章里说,如果允许了泛型数组,那么编译器添加的强制类型转换的代码就会有可能是错误的。但是即便只是普通的拥有泛型的对象,在运行时也是会有错误的,附如下代码:
public
class
Test
<
T
>
{
T t;
public
static
void
main(String[] args)
{
//
TODO Auto-generated method stub
Test
<
String
>
list
=
new
Test
<
String
>
();
list.setT(
"
123
"
);
Object o
=
list;
Test
<
StringBuffer
>
list2
=
(Test
<
StringBuffer
>
)o;
System.out.println(list2.getT().append(
"
44
"
));
}
public
T getT()
{
return
t;
}
public
void
setT(T t)
{
this
.t
=
t;
}
}
运行时,会有java.lang.ClassCastException.
于是,我有了疑惑,即便不是泛型数组也会有这样类似的错误,那么,不允许使用泛型数组的意义何在?
posted on 2012-05-23 11:59
梦里贪欢
阅读(84)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
<
2012年5月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
导航
BlogJava
首页
新随笔
联系
聚合
管理
统计
随笔 - 1
文章 - 0
评论 - 0
引用 - 0
常用链接
我的随笔
我的评论
我的参与
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
2012年5月 (1)
搜索
最新评论
Powered by:
BlogJava
Copyright © 梦里贪欢