zoukankan      html  css  js  c++  java
  • 一次NaN引发的npe

    # 先上代码

    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    
    public class QQ {
    
        public static void main(String[] args) {
            double result = calcute() < 0 ? 0 : calcute();
            System.out.println(result);
            ResultBean resultBean = new ResultBean(result);
            System.out.println(resultBean.toString());
            // 如果再用resultBean.value进行计算,则你会发现出现一堆npe,而且你还不一定知道问题到底出在哪儿。。。
            JSONObject jsonObject = JSON.parseObject(resultBean.toString());
            System.out.println(jsonObject.get("value"));
        }
    
        public static double calcute() {
            Double temp1 = 1d;
            Double temp2 = 2d;
            double temp3 = temp1 - temp2;
            double temp4 = Math.sqrt(temp3);
            double result = ((temp1 + temp4) / temp2);
            return result;
        }
    }
    
    class ResultBean {
    
        private double value;
    
        public ResultBean(double value) {
            this.value = value;
        }
    
        public double getValue() {
            return value;
        }
    
        public void setValue(double value) {
            this.value = value;
        }
    
        public String toString() {
            Object result = JSON.toJSON(this);
            return result.toString();
        }
    
    }

    # 当然我只是把主要的逻辑提出来了,实际项目中还夹杂其他复杂的逻辑

    # 上面代码的结果是:

    NaN
    {"value":null}
    null

    #  可以看到 Java Bean 转 jsonStr 的时候,把NaN给抹去了,这就给后面出现 npe 再排查问题造成了很大的困难。。。。。

  • 相关阅读:
    桶排序
    Ultra-QuickSort
    Merge Sort
    Max Sum
    快排
    Oil Deposits
    1009: josephus问题
    A+B Again(在某个数中找大于m的最小约数)
    luogu4181 [USACO18JAN]Rental Service (贪心)
    luogu4185 [USACO18JAN]MooTube (并查集)
  • 原文地址:https://www.cnblogs.com/lwmp/p/11024664.html
Copyright © 2011-2022 走看看