gpt4 book ai didi

java - 如何将 List 分配给采用 List 且 ClassB 扩展 ClassA 的 setter

转载 作者:行者123 更新时间:2023-12-01 17:35:51 24 4
gpt4 key购买 nike

我有类似的东西

public void setCustomHandler(final List<ClassA> customHandler) {
this.customHandler = customHandler;
}

现在我创建一个 classB 并调用 setCustomHandler(List<B>) 。 Eclipse 告诉我创建

setCustomHandler(final List<ClassB> customHandler){
}

我怎样才能分配

List<ClassB objects> to List<ClassA objects>?

最佳答案

简短回答:你不能。

List<ClassB>不是 List<ClassA> 的子类型(即使 ClassBClassA 的子类型):

List<ClassA> handlerList;
List<ClassB> bHandlers = new ArrayList<ClassB>();

handlerList = bHandlers; // Type mismatch: cannot convert from
// List<ClassB> to List<ClassA>
<小时/>

如果您拥有接收类的控制权,您也许可以让它接受 List<? extends ClassA>相反:

List<? extends ClassA> handlerList;
List<ClassB> bHandlers = new ArrayList<ClassB>();

handlerList = bHandlers; // Compiles fine.

关于java - 如何将 List<Class B> 分配给采用 List<Class A> 且 ClassB 扩展 ClassA 的 setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6493246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com