类型不匹配:无法从元素类型对象转换为父对象 [英] Type mismatch: cannot convert from element type Object to Parent
本文介绍了类型不匹配:无法从元素类型对象转换为父对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试开发e4应用程序,但是我遇到一个错误:在此部分错误:类型不匹配:无法从元素类型对象转换为父对象有任何帮助,请提前感谢:)
i'm trying to develop an e4 application but i have an error : in this part "error:Type mismatch: cannot convert from element type Object to Parent" any help please thanks in advance :)
@Creatable
@Singleton
public class TreeControl {
ParentsHolder parentholder = new ParentsHolder();
public Parent parentExists(String str) {
for (Parent p : parentholder.getParents())
if (p.getTag().equals(str))
return p;
return null;
}
public Child childExists(String p, String c) {
Parent parent = parentExists(p);
if (parent != null)
for (Child child : parent.getChildren())
if (child.getTag().equals(c))
return child;
return null;
}
}
这是父母持有人类
public class ParentsHolder extends Model {
List parents = new ArrayList();
public List getParents() {
return parents;
}
public void setParents(List parents) {
firePropertyChange("parents", this.parents, this.parents = parents);
}
public void addParent(Parent p) {
List newlist = new ArrayList<>(parents);
newlist.add(p);
setParents(newlist);
}
}
并且错误在此行
for (Parent p : parentholder.getParents())
和以下行:
for (Child child : parent.getChildren())
推荐答案
您正在使用原始类型 List
作为列表,因此Java不知道这是 Parent
对象的列表,只能将其视为 Object
。
You are just using the 'raw type' List
for your list so Java does not know that this is a list of Parent
objects and can only treat it as a list of Object
.
您需要使用泛型来指定列表类型-随处可以找到 List
应该是 List< Parent>
。
You need to use generics to specify the list type - everywhere you have List
it should be List<Parent>
.
所以类似:
public class ParentsHolder extends Model {
List<Parent> parents = new ArrayList<>();
public List<Parent> getParents() {
return parents;
}
public void setParents(List<Parent> parents) {
firePropertyChange("parents", this.parents, this.parents = parents);
}
public void addParent(Parent p) {
List<Parent> newlist = new ArrayList<>(parents);
newlist.add(p);
setParents(newlist);
}
}
这篇关于类型不匹配:无法从元素类型对象转换为父对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文