1

我无法从方法中的循环返回值。

我试过这种方式:(返回classname,我初始化字符串而不是classes.get(i).className

public String getClassName(){
    String cName = "classname";
    for (int i=0; i<classes.size(); i++){
        cName = classes.get(i).className;
    }
return cName;
}    

我也试过这个:(返回c而不是classes.get(i).className

public String getClassName(){
    String cName = "classname";
    String c = "c";
    for (int i=0; i<classes.size(); i++){
        c = classes.get(i).className;
    }
    cName = c;
    return cName;
}    

请告诉我如何退货classes.get(i).className!非常感谢 :P

4

4 回答 4

1

类中没有存储任何内容。确保你有你认为你在做什么。尝试将其放在 for 循环中以查看发生了什么:

System.out.print("class name = " + cName);

如果这永远不会打印出来,你就知道类是空的。for 循环中的任何时候,您都可以调用return,例如,如果类名与您可以在if语句中测试的内容匹配。

for (int i=0; i<classes.size(); i++){
    cName = classes.get(i).className;
    return cName;
}

另外,您可以投票或将某人标记为正确吗?(我是新来的,很想有一些这样标记的好答案:))

于 2013-10-29T16:06:07.347 回答
0

我不知道你想做什么,但你的代码相当于:

public String getClassName() {
    return classes.get(classes.size() - 1).className;
}

你确定这是你想要返回的吗?你应该小心,以防classes你可能得到空ArrayIndexOutOfBoundsException

于 2013-10-27T10:56:20.997 回答
0

虽然 Maroun 的代码只返回 classes 集合中的最后一个值是正确的,但现实情况是,在您的示例中,集合始终为空,因此 for 循环甚至不会执行一次。确保 classes 集合包含您认为应该包含的内容!

于 2013-10-27T10:58:23.293 回答
0

那应该是因为您没有进入 for 循环,主要是因为您列出的“类”是空的。你可以这样检查-

if(classes.size()==0)
   System.out.println("Classes is empty");
于 2013-10-27T10:59:15.470 回答