java 关于List类型转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 关于List类型转换相关的知识,希望对你有一定的参考价值。

已知两个类AB, B extends A, 有一个方法List<A> excute(List<A>),现在有实例List<B> list=new ArrayList<B>(),怎么excute(list)编译不通过?怎样才能用excute方法处理这个list(excute方法不能改变)
class A

class B extends A

public List<A> excute(List<A> l)
List<A> ll=new ArrayList<A>();

//.......
return ll;


public void main(...)
List<B> blist=new ArrayList<B>();
List<B> resultList=excute(blist);//主要是这代码要改成咋样?

参考技术A 编译不通过的原因是返回值类型不匹配,不能直接将返回的父类型对象赋给子类型引用。如果对象确实是子类对象,那么你可以用强制类型转换(List<B> resultList=(List<B>)excute(blist);),如果不是的话那你从一开始就不应该这样用。 参考技术B 根据你的意思,应该这样
public List<A> excute(List<? extends A> l)



就能彻底实现你想要的效果了,测试完给满意哦
还有 如果方法不想改成静态的,就实例化一下你的公共类本回答被提问者采纳
参考技术C 你是不是没实例化?
静态方法调用动态方法时必须实例化
List<B> blist=new ArrayList<B>();
B b=new B();
List<B> resultList=b.excute(blist);
参考技术D List<T> excute(List<T extends A>) 第5个回答  2012-11-16 你A和B类都是一个空类里面什么都没有,你的excute方法在哪个类里啊?
你这个main方法在什么类里?

以上是关于java 关于List类型转换的主要内容,如果未能解决你的问题,请参考以下文章

关于List泛型的强制转换

Java 将 string类型与list类型相互转换

请教java List 泛型转换

java 各类型转换 convert

java 怎么将List<List<Object>>类型转换成json类型,怎么读取json类型

无法将类型“java.lang.String”的属性值转换为属性“事务”所需的类型“java.util.List”