ArrayList<接口> 如何类型转换成ArrayList<实现>
时间:2011-09-01
来源:互联网
我有一个接口interface Animal.
有一个类cat implements Animal
有一个函数是返回Animal的list
public ArrayList<Animal> getAnimals(){
ArrayList<cat> cats = new ArrayList<cat>();
...........
return cats;//为什么会出错?Type mismatch: cannot convert from ArrayList<cat> to ArrayList<Animal>
}
第二个问题是
比如我使用ArrayList<Animal> cats = getAnimals();
则ArrayList<cat> cs = cats;为什么不行呢?
有一个类cat implements Animal
有一个函数是返回Animal的list
public ArrayList<Animal> getAnimals(){
ArrayList<cat> cats = new ArrayList<cat>();
...........
return cats;//为什么会出错?Type mismatch: cannot convert from ArrayList<cat> to ArrayList<Animal>
}
第二个问题是
比如我使用ArrayList<Animal> cats = getAnimals();
则ArrayList<cat> cs = cats;为什么不行呢?
作者: projoy 发布时间: 2011-09-01
你可以这样:
ArrayList<Animal> cats = new ArrayList<cat>();
return cats;
这样就没错了。
ArrayList<Animal> cats = new ArrayList<cat>();
return cats;
这样就没错了。
作者: mousepc228891 发布时间: 2011-09-01
Type mismatch: cannot convert from ArrayList<cat> to ArrayList<Animal>
会出现这个错误亚
会出现这个错误亚
作者: projoy 发布时间: 2011-09-01
1
public ArrayList<? extends Animal> getAnimals(){
ArrayList<cat> cats = new ArrayList<cat>();
...........
return cats;
}
2
因为ArrayList<Animal> cats 里可以保存非cat对象
所以ArrayList<cat> cs = cats;JVM不知道cats里会不会保留了非cat对象,为了安全,拒绝转换
public ArrayList<? extends Animal> getAnimals(){
ArrayList<cat> cats = new ArrayList<cat>();
...........
return cats;
}
2
因为ArrayList<Animal> cats 里可以保存非cat对象
所以ArrayList<cat> cs = cats;JVM不知道cats里会不会保留了非cat对象,为了安全,拒绝转换
作者: qybao 发布时间: 2011-09-01
ArrayList<Animal> animals= getAnimals();
那就迭代在这样强转一下
(cat)animals.get(i);
那就迭代在这样强转一下
(cat)animals.get(i);
作者: huangchenliang 发布时间: 2011-09-01
所以ArrayList<cat> cs = cats;JVM不知道cats里会不会保留了非cat对象,为了安全,拒绝转换
我还有疑问,为什么
ArrayList<Animal> cats = new ArrayList<cat>();不可以呢,会出现Type mismatch: cannot convert from ArrayList<cat> to ArrayList<Animal>
Animal应该能保存其子类的东西把
我还有疑问,为什么
ArrayList<Animal> cats = new ArrayList<cat>();不可以呢,会出现Type mismatch: cannot convert from ArrayList<cat> to ArrayList<Animal>
Animal应该能保存其子类的东西把
作者: projoy 发布时间: 2011-09-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28