美文网首页代码片段分享
Java 递归函数多次返回,返回值被覆盖

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

作者: 花艺荣 | 来源:发表于2021-06-08 09:55 被阅读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;
        }
    

    相关文章

      网友评论

        本文标题:Java 递归函数多次返回,返回值被覆盖

        本文链接:https://www.haomeiwen.com/subject/xxqteltx.html