从 Collection Class 及其存储的 objects 获取 StackOverflowError。有没有人有过类似的困境?
Getting a StackOverflowError from a Collection Class and its stored objects. Has anyone had a similar dilemma?
我正在完成命令设计模式作业,并且 运行 遇到了 WhosebugError。我查了报错的 说是我的构造函数有关
我和我的教授已经看过了,我们似乎找不到问题。也许多一双眼睛就能解决问题。
编译程序:
线程异常 "main" java.lang.WhosebugError
at Command.AyyTacoMenu.addItem(AyyTacoMenu.java:39)
at Command.AyyTacoMenu.<init>(AyyTacoMenu.java:13)
at Command.AyyTacoItem.<init>(AyyTacoItem.java:8)
at Command.AyyTacoMenu.addItem(AyyTacoMenu.java:39)
at Command.AyyTacoMenu.<init>(AyyTacoMenu.java:13)
at Command.AyyTacoItem.<init>(AyyTacoItem.java:8)
at Command.AyyTacoMenu.addItem(AyyTacoMenu.java:39)...
CollectionClass代码:
package Command;
import java.util.ArrayList;
import java.util.*;
public class AyyTacoMenu {
private ArrayList<AyyTacoItem> atmenu;
public AyyTacoMenu() {
atmenu = new ArrayList<AyyTacoItem>();
// System.out.println("Menu has been set to ArrayList of type AyyTacoItem");
addItem("235", "Breakfast Enchillada", 10.00);
addItem("236", "Burrito Bowl", 8.00);
System.out.println("Items added");
}
public int size() {
// TODO Auto-generated method stub
return atmenu.size();
}
public void addItem(String i, String n, double p) {
AyyTacoItem x = new AyyTacoItem(i, n, p);
atmenu.add(x);
}
public AyyTacoItem get(int i) {
// TODO Auto-generated method stub
return atmenu.get(i);
}
}
项目Class代码:
package Command;
public class AyyTacoItem extends AyyTacoMenu {
private String iD;
private String name;
private double price;
protected AyyTacoItem(String i, String n, double p){
System.out.println("Item being Added");
iD = i;
name = n;
price = p;
System.out.println("Item Added");
}
protected String getID() {
return this.iD;
}
protected String getName() {
return this.name;
}
protected double getPrice() {
return this.price;
}
public String toString() {
String x;
x = ((this.iD) + " | " + (this.name) + " | $" + (this.price));
return x;
}
}
预先感谢您的帮助!
public class AyyTacoItem extends AyyTacoMenu
AyyTacoItem
不应扩展 AyyTacoMenu
。否则基础 class AyyTacoMenu
必须在构造派生 class AyyTacoItem
时构造,并且 AyyTacoMenu
的构造函数试图构造另一个 AyyTacoItem
,这导致无限递归。
我正在完成命令设计模式作业,并且 运行 遇到了 WhosebugError。我查了报错的
我和我的教授已经看过了,我们似乎找不到问题。也许多一双眼睛就能解决问题。
编译程序:
线程异常 "main" java.lang.WhosebugError
at Command.AyyTacoMenu.addItem(AyyTacoMenu.java:39)
at Command.AyyTacoMenu.<init>(AyyTacoMenu.java:13)
at Command.AyyTacoItem.<init>(AyyTacoItem.java:8)
at Command.AyyTacoMenu.addItem(AyyTacoMenu.java:39)
at Command.AyyTacoMenu.<init>(AyyTacoMenu.java:13)
at Command.AyyTacoItem.<init>(AyyTacoItem.java:8)
at Command.AyyTacoMenu.addItem(AyyTacoMenu.java:39)...
CollectionClass代码:
package Command;
import java.util.ArrayList;
import java.util.*;
public class AyyTacoMenu {
private ArrayList<AyyTacoItem> atmenu;
public AyyTacoMenu() {
atmenu = new ArrayList<AyyTacoItem>();
// System.out.println("Menu has been set to ArrayList of type AyyTacoItem");
addItem("235", "Breakfast Enchillada", 10.00);
addItem("236", "Burrito Bowl", 8.00);
System.out.println("Items added");
}
public int size() {
// TODO Auto-generated method stub
return atmenu.size();
}
public void addItem(String i, String n, double p) {
AyyTacoItem x = new AyyTacoItem(i, n, p);
atmenu.add(x);
}
public AyyTacoItem get(int i) {
// TODO Auto-generated method stub
return atmenu.get(i);
}
}
项目Class代码:
package Command;
public class AyyTacoItem extends AyyTacoMenu {
private String iD;
private String name;
private double price;
protected AyyTacoItem(String i, String n, double p){
System.out.println("Item being Added");
iD = i;
name = n;
price = p;
System.out.println("Item Added");
}
protected String getID() {
return this.iD;
}
protected String getName() {
return this.name;
}
protected double getPrice() {
return this.price;
}
public String toString() {
String x;
x = ((this.iD) + " | " + (this.name) + " | $" + (this.price));
return x;
}
}
预先感谢您的帮助!
public class AyyTacoItem extends AyyTacoMenu
AyyTacoItem
不应扩展 AyyTacoMenu
。否则基础 class AyyTacoMenu
必须在构造派生 class AyyTacoItem
时构造,并且 AyyTacoMenu
的构造函数试图构造另一个 AyyTacoItem
,这导致无限递归。