关于泛型的类型转换

limengchen 2009-08-31 10:43:21
在public void writeObject(Object obj)中,如果obj.getClass().isArray(),则调用public <T> void writeArray(T[] array),问题是如何将obj转换成T[]传给writeArry呢?
...全文
120 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dajiadebeibei9 2009-08-31
  • 打赏
  • 举报
回复
包含<T>的这个方法应该在类初始化的时候<T>就应该有类型值了,这样以来,可以添加的类型参数就确定了
用Object型的参数作为形参,这应该是多态的体现
T obj = (T)obj;加一个强制类型转换 应该就可以了
justinavril 2009-08-31
  • 打赏
  • 举报
回复

public void writeObject(Object[] obj){ //不了解具体的 但是你的这个参数是不是应该是数组啊? 改成数组 编译就没问题了
if (obj.getClass().isArray())
writeArray(obj);
}

public <T> void writeArray(T[] array){

}
limengchen 2009-08-31
  • 打赏
  • 举报
回复
什么意思,是不是说不可能这么调?我直接写
public void writeObject(Object obj)
{
if (obj.getClass().isArray())
writeArray(obj);
}
的话,编译不过。
  • 打赏
  • 举报
回复
??
yanliang_xt 2009-08-31
  • 打赏
  • 举报
回复
T在实例化的时候就已经确立了。。。

62,620

社区成员

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

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