所以我有课
public class Box {
int index;
static int amount;
Box thisbox;
Cargo thiscargo;
Box(){
index = amount;
amount++;
}
}
在另一堂课中,我将定义框:
public class dostuff {
public static void main(String[] args) throws NoSuchMethodException {
Box box = new Box();
box.thisbox = new Box();
box.thisbox.thisbox = new Box();
box.thisbox.thisbox.thisbox = new Box();
box.thisbox.thisbox.thisbox.thisbox = new Box();
}
}
如您所知,box.thisbox.thisbox.thisbox.thisbox变得很烦人。我想知道是否可以让循环更轻松地访问box.thisbox.thisbox.thisbox而不必重复三遍.thisbox。在某些情况下,我必须在框内定义30个框,并且我不想复制和粘贴“ thisbox”的内容很多次。真的会喜欢一些帮助。谢谢! 编辑:我不能使用数组列表。不要问...
答案 0 :(得分:1)
只要您知道终止点,即直到您要继续创建框对象时,就可以用几种方法来完成。这是这样做的方法之一。
使用递归
public static void main(String[] args) {
Box box = new Box();
createBox(box);
}
public static void createBox(Box box) {
while(box.amount != 10){
box.thisbox = new Box();
createBox(box.thisbox);
}
}
答案 1 :(得分:0)
您可以编写某种深度的递归方法。
类似这样的东西
public Box getNthBox(Box box, int depth) {
If (depth == 0) {
return box;
}
return getNthBox(box.getBox(), depth - 1);
}
您需要一个getBox()方法,但该方法返回Box字段。