boolean iswrong = true;
fileList = ReadExcelForKeeprepair.getInfoForCompany(iswrong,file,this.sessionContainer,this.clazz.toString());
if(iswrong == false){
{
HttpSession session = request.getSession();
session.setAttribute("wringfilelist",fileList); //把错误list存入session
getwringTXTlist(mapping, applyForm, request, response); //调用分页方法
}
}//getInfoForCompany方法
if(wringList.size() != 0){
iswrong = false;
return wringList;我想请问这里在getInfoForCompany方法里不能改变iswrong的值吗?
我用debug查看到  当if(iswrong == false)的时候 值还是初始的true 并没有在调用方法里修改为false 我想要修改的话该怎么做?

解决方案 »

  1.   

    当然不能改变:我想请问这里在getInfoForCompany方法里不能改变iswrong的值吗?
      

  2.   

    加上"ref"关键字、或者这个方法直接返回一个boolean值、然后赋给iswrong!
      

  3.   


    boolean iswrong = true;
    fileList = ReadExcelForKeeprepair.getInfoForCompany(iswrong,file,this.sessionContainer,this.clazz.toString());传递方法参数是在栈里新生成了一个临时变量;在getInfoForCompany里修改iswrong的值,是不会影响到外面的iswrong值的。
      

  4.   

    ref方式好像java木有!!!汗!!!
      

  5.   

    java是参数值传递,是形参数是实参的一个拷贝
      

  6.   

    没办法,java没有地址和引用的概念,与c++不同,如果需要带回参数的话,单个参数就用return,需要多个就包装类吧
      

  7.   

    那要看你把这个iswrong定义放的位置,如果你想在
    if(wringList.size() != 0){
                iswrong = false;
                return wringList;
    得到iswrong的值之后去调用getInfoForCompany时候,就要把你初始值boolean iswrong = true;这个值定义的地方放在最前面,这个时候你调用getInfoForCompany时候,传的值是你变换过的值。