【发布时间】:2013-11-06 04:34:09
【问题描述】:
我无法从方法中的循环返回值。
我试过这种方式:(返回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
【问题讨论】:
-
根据什么返回值?!因为在您的情况下,将返回类列表中的最后一个值。
-
是不是说我的代码没有问题但是ArrayList中实际上什么都没有存储,所以返回了初始化的值?
-
是和不是。从语法上讲,您的代码是正确的,如果列表中有数据,您将获得不同的输出(不是您默认设置的
className)。但从逻辑上讲,它不会总是返回列表中的最后一个元素,我真的怀疑你是否想要这样,因为如果是这样的话,return classes.get(classes.size() - 1).className;就足够了。您甚至不需要遍历列表。 -
@R.J 谢谢。但是如果
ArrayList classes最初有0个项目,恐怕使用return classes.get(classes.size() - 1).className会得到java.lang.ArrayIndexOutOfBoundsException: -1错误 -
您可以在返回之前进行空/空检查。就如此容易。此外,由于它是一个列表,您将获得
IndexOutOfBoundsException。
标签: java loops methods return return-value