Это ошибка, что я получаю:ClassCastException: ArrayList не может быть приведен к
java.lang.ClassCastException: java.util.ArrayList cannot be cast to MenuComponent
Вот код, который вызывает у меня проблемы:
import java.util.ArrayList;
import java.util.Iterator;
public class Menu extends MenuComponent{
ArrayList menuComponents = new ArrayList();
String name;
String description;
public Menu() {
}
public Menu(String name, String description) {
super();
this.name = name;
this.description = description;
}
public void add(MenuComponent menuComponent) {
menuComponents.add(menuComponents);
}
public void remove(MenuComponent menuComponent) {
menuComponents.remove(menuComponents);
}
public MenuComponent getChild(int i) {
return (MenuComponent) menuComponents.get(i);
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
public void print() {
System.out.println(getName());
System.out.print("---" + getDescription());
System.out.println("---");
Iterator iterator = menuComponents.iterator();
while(iterator.hasNext()) {
MenuComponent menuComponent = (MenuComponent) iterator.next();
menuComponent.print();
}
}
public Iterator createIterator() {
return new CompositeIterator(menuComponents.iterator());
}
}
Проблема, которая вызывает ошибку находится в этой строке:
MenuComponent menuComponent = (MenuComponent) iterator.next();
Я пытался испортить это, но мне не повезло. Любые советы приветствуются.
menuComponent - это ArrayList, поэтому вы не можете отнести его в свой класс MenuComponents - два метода, называемых add & remove, должны иметь '(menuComponent)' вместо '(menuComponents)' –