• 自己遇到过的出现java.lang.StackOverflowError的原因


        public static JSONArray geth24Weather(String result) {//获取当天24小时以及第二天的天气结果对象
            JSONObject fromObject = null;
            JSONArray h24weatherArray =null;
            try {
                int indexOf = result.indexOf("{");
                int lastIndexOf = result.lastIndexOf("}");
                result=result.substring(indexOf, lastIndexOf+1);
                String replaceAll = result.replaceAll(" ", "");

                if(replaceAll.trim().startsWith("{")){
                fromObject = JSONObject.fromObject(result);
                }
                //System.out.println("fromObject"+fromObject);
            } catch (Exception e) {
                e.printStackTrace();
            }
            if(fromObject!=null&&fromObject.get("code").equals("0")){
                 JSONArray jsonArray = fromObject.getJSONArray("data");//获取天气数据对象
                 JSONArray  forecastArray= ((JSONObject)jsonArray.get(0)).getJSONArray("forecast");//获取预报天气对象
                 JSONObject todayObj= (JSONObject)forecastArray.get(0);//获取到当天对象
                 if(todayObj.containsKey("h24weather")&&todayObj.get("h24weather")!=null){
                     System.out.println("打印todayObj="+todayObj);
                     h24weatherArray=todayObj.optJSONArray("h24weather");
                    if(h24weatherArray==null){
                         geth24Weather(result);
                     }
                     System.out.println("打印h24weatherArray="+h24weatherArray);
                 }else{
                    
                     System.out.println("空");
                 }
                
            }
            return h24weatherArray;
        }

    这个就是递归没有结束条件,一旦遇到result是null那么这个就会无限循环下去,就会在栈中不断调用方法,直至栈溢出。

  • 相关阅读:
    SQL Server 2005 Express 不能远程连接的错误
    android客户端程序访问服务器端webservice,几篇不错的文章!
    Android连接远程数据库
    Android平台显示单位px/dip/sp的区别
    Android 下使用 JSON 实现 HTTP 请求,外加几个示例!
    前言
    03、ApplicationSettings Of win8
    把windows 8 应用部署到其它计算机(更新 win10 uwp部署)
    02、获取 win 8 程序包信息
    01、获取计算机用户的信息
  • 原文地址:https://www.cnblogs.com/wth21-1314/p/9288269.html
Copyright © 2020-2023  润新知