所以我正在编写我的代码并尝试将抽象工厂设计模式应用到其中。这是情况。
我有一个父类CheckList和一个子类ShoppingList。除此之外,我还有从课堂ShoppingListItem延伸出来的ListItem课程。
public abstract class CheckList {
String name;
ArrayList<ListItem> items;
public String getName() { return this.name; };
public ArrayList<ListItem> getItems() { return this.items; };
public String setName(String name) { return this.name = name; };
public abstract void addItem(String name);
public boolean editItem(String oldName, String newName) {
for (int i = 0; i < items.size(); i++)
{
if (items.get(i).getName() == oldName) {
items.get(i).setName(newName);
return true; // target found
}
}
return false; // cannot find the target
}
public boolean deleteItem(String name) {
for (int i = 0; i < items.size(); i++)
{
if (items.get(i).getName() == name) {
items.remove(i);
return true; // target found
}
}
return false; // cannot find the target
}
public boolean completeItem(String name) {
for (int i = 0; i < items.size(); i++)
{
if (items.get(i).getName() == name) {
items.get(i).setCompleted();
return true; // target found
}
}
return false; // cannot find the target
}
}
public class ShoppingList extends CheckList {
public ShoppingList (String name) {
this.name = name;
this.items = new ArrayList<ShoppingListItem>();
}
public void addItem(String name) {
// add a new ShoppingListItem to items
items.add(new ShoppingListItem(name));
}
}
我在这里遇到的问题是
ShoppingList.java:9: error: incompatible types:
ArrayList<ShoppingListItem> cannot be converted to ArrayList<ListItem>
this.items = new ArrayList<ShoppingListItem>();
看起来Java不允许在 and 之间进行这种ArrayList<parent>继承ArrayList<child>。我想知道是否有任何解决方案?我试图使ShoppingList只有一个ArrayList<ShoppingListItem>并且还继承了所有的添加/删除/等方法。这可能吗?
jeck猫
慕后森
相关分类