例如 Vector<子类> = Vector<父类>怎么转 Vector<子类> vec = (Vector<子类>)Vector<父类> 这样转不了((子类)vec.get(0)).可以转换
解决方案 »
- java swing界面上的问题
- 请教会htmlparser的人
- 实时更新问题
- 急急急,简单的数据库问题,在线等!!!!!
- 过滤器的问题!
- 学习core java中的疑惑(关于super的使用)
- 如何获取Java 文件 编译时打印在控制台的错误信息.
- 在一个应用程序中我用new String(str.getBytes("ISO8859_1"),""GBK)来转换字符,运行时却报UnsupportedEncodingException: GBK错误。什么
- 同志们,解决了此问题一定给分,不然我不是人!!!
- java.lang.ClassCastException: zu14
- java 改变 word 的字体
- J2SE与蓝牙
Vector <父类>
这是没有关系的两个类,没有继承关系
对于:Vector <子类> vec = (Vector <子类>)Vector <父类>
可以视作:Vector vec = (Vector)Vector,
这是没有意义的,所以不能转。深层的原因可以见介绍泛型的书,如《Core Java2》第八版以后。
A<B> 和 A<C>是两个不同的类型,没有派生关系,你是转不了的。
你最后一个方案是可以的,但是太消耗了
正确的方法,就是你不该用到 子类的vector。
String p="p";
}
class c extends p{
String c="c";
}
public class Main { public static void main(String[] args) {
Vector<c> cc=new Vector();
cc.add(new c());
Vector<p> pp=(Vector)cc;
System.out.println(""+pp.get(0).p);
}
}
/**run:
p
成功生成(总时间:0 秒)*/
String 是Object的子类
但是 ArrayList<String> 和ArrayList<Object>就没有什么关系了
Vector<Object> vo=new Vector<Object>();
Vector v=vo;
Vector<String> vs=(Vector<String>)v;
只能这样骗编译器,至于转换后会不会报错,是你的事