我在方法中从循环返回一个值时遇到了麻烦。
我尝试过这种方式:(返回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
答案 0 :(得分: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;
}
另外,你可以投票,或者标记某人是正确的吗? (我很新,并希望得到一些标记为好的答案:))
答案 1 :(得分:0)
我不知道你想做什么,但你的代码相当于:
public String getClassName() {
return classes.get(classes.size() - 1).className;
}
你确定这是你要归还的吗?如果classes
为空,您应该小心,因为您可能会ArrayIndexOutOfBoundsException
。
答案 2 :(得分:0)
虽然Maroun是正确的代码只返回类集合中的最后一个值,但实际情况是,在您的示例中,集合始终为空,因此for循环甚至不会执行一次。确保类集合包含您认为应该的内容!
答案 3 :(得分:0)
那应该是因为你不进入for循环主要是因为你列出的“类”是空的。 你可以这样检查 -
if(classes.size()==0)
System.out.println("Classes is empty");