代码片段分享

Java 递归函数多次返回,返回值被覆盖

2021-06-08  本文已影响0人  花艺荣

如下代码是有问题的,直到某次递归检查FileName没有问题那么就不生成新名字再检查了,直接返回,这是我们想要的,但是之前失败的调用也会逐一出栈且反回一个值,应为返回了我们每次调用的局部变量,那么就有问题了,返回多次,想要的值被覆盖。

改正:每次返回一个全局变量,代码中打开注释就好了。

    final String txtNameFirstPart = "New Text Document";
    final String txtNameSecondPart = ".txt";
 //   private String theTrueNewName = "";
    private String getTheTXTNewName( String newFileName, int checkNameTimes ){
       //  theTrueNewName = newFileName;
        if(arrayadapter!=null  && arrayadapter.getM_Items()!=null && arrayadapter.getM_Items().size()>0){
            List<ObjItem> items = arrayadapter.getM_Items();
            for(ObjItem item : items){
                if(item.ObjName.equals(newFileName)){
                    checkNameTimes++;
                    getTheTXTNewName(txtNameFirstPart+" ("+checkNameTimes+")"+txtNameSecondPart, checkNameTimes);
                    break;
                }
            }
        }
        //return theTrueNewName;
        return newFileName;
    }
上一篇下一篇

猜你喜欢

热点阅读