当前位置:w88优德官网网文章中心网站开发Java → Java方法循环嵌套调用关于返回值的陷阱

Java方法循环嵌套调用关于返回值的陷阱

减小字体 增大字体 作者:w88优德官网网  来源:www.cuoxin.com  发布时间:2014-2-15 21:26:05
上个星期修改了短信网关的重启程序,结果这周又遇到了新问题。虽然有时可以重启成功,但是有时候还是重启失败。本地模拟测试怎么都没发现这个问题,趁着闲时的功夫,自己到正式环境将日志分析了一下,发现重启不成功的原因主要在心跳3次后没有收到响应消息,程序不会自动重启,而是不断的继续发送心跳。看了看代码,没有发现哪里有错啊。想了想,难道是由于方法嵌套调用的原因?于是自己弄了个简单的测试,来验证:

 public static boolean tests(int  i){
        if(i>5){
            return false;
        }
        if(true){
           tests(++i);
        }
        return true;
    }
好小子,果然是这里的问题,原来是由于tests()方法调用了tests()方法后,每个test()方法都有自己的返回值,只有第一层的tests()方法才会把自己的返回值输出给调用他的程序。例如:若有程序调用了tests(1)后,tests(2)将返回值返回给了tests(1),tests(3)将返回值返回给了test(2),以此类推。运行完tests(5)后,tests(1)还会向下执行,最后结果不论如何都是true.所以要想这里的结果正确,设置一个标志位接收每个tests()方法返回的值即可。

public static boolean tests(int  i){
        boolean flag = false;
        if(i>5){
            return false;
        }
        if(true){
          flag =  tests(++i);
        }
        return flag;
    }
这样才会得到想要的结果。特此警示:嵌套方法调用关于返回值的陷阱

本文引用网址:
在下列搜索引擎中搜索“Java方法循环嵌套调用关于返回值的陷阱”的相关信息:
谷歌搜索 百度搜索 360搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1如何做爱真人示范图片 男女ML常...
  • 2情侣酒店开房qvod 情侣做爱视频...
  • 3怎么做爱舒服?真人示范做爱姿...
  • 4如何做爱更舒服?教你做爱72式...
  • 5雨后小故事 qq表情姐弟雨后小故...
  • 1dede:arclist 实现分页!-织梦...
  • 2免费软文发布平台汇总
  • 3dedecms实现频道封面和列表页调...
  • 4织梦DEDECMS {dede:field name...
  • 5首页flash幻灯片不显示解决方法...
  • 1嫩白少妇与猛男户外疯狂车震遭...
  • 2怎样爱爱最爽?性爱姿势真人图...
  • 3中国女大学生的淫靡生活
  • 4舒淇艳照门事件 舒淇不雅照ed2...
  • 5合肥艳照门事件 合肥艳照门全套...
  • 1如何做服务器安全维护?有哪些...
  • 2Windows Server 2003系统性能优...
  • 3IIS中的 MIME类型
  • 4设置不求人:搞懂任务栏显示项目...
  • 5远程管理Win2003服务器技巧
  • 赞助商广告

    图片文章导读