[英]Type mismatch: cannot convert from element type Object to Parent
我正在嘗試開發e4應用程序,但是我遇到一個錯誤:在此部分“錯誤:類型不匹配:無法從元素類型對象轉換為父對象”有任何幫助,請提前感謝:)
@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
的列表。
您需要使用泛型來指定列表類型-在所有具有List
它都應該是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);
}
}
將相應的行更改為以下代碼:
for(Object p : parentholder.getParents())
{
Parent p1= (Parent)p;
//your code .....
}
類似地,針對兒童班
for(Object p : parentholder.getParents())
{
Child child= (Parent)p;
//your code .....
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.