求助:关于范型的类型转换

yunchenge 2005-03-29 07:59:39
在1.5里面,我想把一个用 Object 引用指向的一个 Vector〈String〉转换成原来的类型,也就是 Vector〈String〉,应该怎么做?
Object obj=aStringVector;
Vector<String> stringVector=(Vector<String>)obj;//这个可以运行,但是它会有警告
Vector<String> stringVector=(Vector)obj;//这样也行,但同样会有警告!
...全文
141 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunchenge 2005-04-01
  • 打赏
  • 举报
回复
我昨天刚开始用JAVA,自己也写了一个关于短信清单统计的程序.其中用到了一个
ArrayList<HandPhone> handList = new ArrayList<HandPhone>();

HandPhone是我定义的一个类,然后我创建一个此类的ARRAYLIST ,之前我也没看过JAVA
方面的书,只是根据以前学C++的经验写了以上的编码.结果正确用上了.在C++中和JAVA中
其用法是一样的.ArrayList是一个适合多个类型使用的范式,在使用时要对其类型进行说
明.<String> \ <HandPhone> 都是对其类型进行说明的.说明之后就可以像正常的数据结
构一样使用了.
那个代码一正确写法是:
Vector<String> stringVector=new Vector<String>();//



我现在知道是要这样做:
Vector<String> stringVector=new Vector<String>();
但现在我想做的是:
Object obj=stringVector;
//some other code
//将obj 正确还原为 Vector<String>,下面的代码可以运行,但是会出现警告!
Vector<String> otherStringVector=(Vector<String>)obj;

还有,范型只是 1.5 版才开始加上去的功能,如果你在之前的版本这样做,就会出错!
newboy5624 2005-03-31
  • 打赏
  • 举报
回复
我昨天刚开始用JAVA,自己也写了一个关于短信清单统计的程序.其中用到了一个
ArrayList<HandPhone> handList = new ArrayList<HandPhone>();

HandPhone是我定义的一个类,然后我创建一个此类的ARRAYLIST ,之前我也没看过JAVA
方面的书,只是根据以前学C++的经验写了以上的编码.结果正确用上了.在C++中和JAVA中
其用法是一样的.ArrayList是一个适合多个类型使用的范式,在使用时要对其类型进行说
明.<String> \ <HandPhone> 都是对其类型进行说明的.说明之后就可以像正常的数据结
构一样使用了.
那个代码一正确写法是:
Vector<String> stringVector=new Vector<String>();//
crazer2003 2005-03-30
  • 打赏
  • 举报
回复
1.5之前的jdk允许vector加入任何类型的对象,比如你可以放入cat or dog但是当你取对象时
你可能想取的是cat确得到dog 1.5就规定拉可以事先定义vector类型这样不符合的就不能放入
所以(Vector<String>)表示你只能放入string 类型的object进入容器
leqixb 2005-03-30
  • 打赏
  • 举报
回复
长知识,这个新东东我还没用过呢
jianghuxing 2005-03-30
  • 打赏
  • 举报
回复
楼主只研究新东西,没有看旧的了。
kingfish 2005-03-30
  • 打赏
  • 举报
回复
刚是JBuilder中编译的,
在命令行编译是有unchecked cast/conversion的警告出现,
这也正常
killme2008 2005-03-30
  • 打赏
  • 举报
回复
回楼上

是我错了,刚去查了下API文档,确实没有说不建议使用,只是用LIST代替了,我错了
kingfish 2005-03-30
  • 打赏
  • 举报
回复
楼上说的有根据吗? //Vector本身已经不建议使用 ??


我用jdk1.5.0-rc-b63编译,并没任何警告
killme2008 2005-03-30
  • 打赏
  • 举报
回复
警告是因为Vector本身已经不建议使用了,这是jdk1.1的东西了,1.2后已经用ArrayList替代了
yunchenge 2005-03-30
  • 打赏
  • 举报
回复
晕,都没有实质性的回答啊!
yunchenge 2005-03-30
  • 打赏
  • 举报
回复
我没有特别其研究什么新东西,只是我的机子上装的是 1.5 的版本,结果我在编译的时候出现警告。
虽然不影响运行结果吧,但有警告总是感觉不那么爽,所以想解决它.
有没有那位牛人帮我看看啊!!!!
qnzzzz 2005-03-29
  • 打赏
  • 举报
回复
哦 哦
我看看。
yunchenge 2005-03-29
  • 打赏
  • 举报
回复
Vector<String> 这是范型,也就是说现在这个 Vector 里面只能加入 String 的对象了!
飞行的兔子 2005-03-29
  • 打赏
  • 举报
回复
1.5好像增加了很多新东西,还没有看过,呵呵,过段时间再看看!
qnzzzz 2005-03-29
  • 打赏
  • 举报
回复
Vector<String>这种格式是什么意思?
请教了!

62,614

社区成员

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

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