我有一个两个类。在类A中我调用另一个类B方法,它在for循环中有if / else语句。现在我必须每次在类A上返回if / else的值
A类
public class ClassA extends ClassB {
public void checkSuiteInExcelToRun() throws IOException {
getResult();
System.out.println("po: "+getResult());
}
}
B类
public class ClassB {
public String getResult(){
int sheetIndex=wb.getSheetIndex(wsName);
int rowNum = "3";
int colNum ="3";
for(int i=1;i<rowNum;i++){
Row Suiterow = ws.getRow(i);
for(int j=1;i<colNum;j++){
op =Suiterow.getCell(j).getStringCellValue();
System.out.println("get value:----"+op );
if(op.equalsIgnoreCase("Y")){
System.out.println("op is "+op);
break;
}
else if (op.equalsIgnoreCase("N")) {
System.out.println("op is " + op);
break;
}
}
}
return op;
}
这里我从类A调用getresult()。现在假设对于循环1单元格值,即op = y然后它也返回&#34; Y&#34;对于A类。现在对于循环2,单元格值即op = N然后它也返回&#34; N&#34;到A级......等等。但是目前正在发生的事情,它只返回最后一个循环值,即在上述条件下仅返回最后一个值&#34; N&#34;
我希望所有循环值都应该返回到A类
答案 0 :(得分:0)
回答您的疑问:
它返回的最后一个值仅:它只返回1个值,因为一旦遇到return语句,当前方法就会停止执行并将控制权传递回调用函数。
因此,您应该将值存储在Arraylist中并返回arrayList而不是单个值。
如果你想避免使用集合(由于某些原因),你可以在你的A类中使用for循环。
答案 1 :(得分:0)
我回答了我发布的问题。我发布这个以便其他人可以推荐它
仅在B类中进行更改
B类
public class ClassB {
public String getResult(){
int sheetIndex=wb.getSheetIndex(wsName);
int rowNum = "3";
int colNum ="3";
for(int i=1;i<rowNum;i++){
Row Suiterow = ws.getRow(i);
for(int j=1;i<colNum;j++){
op =Suiterow.getCell(j).getStringCellValue();
System.out.println("get value:----"+op );
if(op.equalsIgnoreCase("Y")){
System.out.println("op is "+op);
return op;
}
else if (op.equalsIgnoreCase("N")) {
System.out.println("op is " + op);
return op;
}
}
}
return op;
}