阅读背景:

Java,compareTo、compare方法的空指针异常的解析

来源:互联网 

//        Double d1 = 0.2;
//        Double d2 = 0.3;
//        System.out.println(d1.compareTo(d2)); //-1

//        Double d1 = null;
//        Double d2 = 0.3;
//        System.out.println(d1.compareTo(d2)); //NullPointerException

//        Double d1 = 0.2;
//        Double d2 = null;
//        System.out.println(d1.compareTo(d2)); //NullPointerException
//-------------------------------------------------------------------------
//        d1.compareTo(d2)最后调用的还是Double.compare(d1,d2)方法,
//        public int compareTo(Double anotherDouble) {
//            return Double.compare(value, anotherDouble.value);
//        }

//        compare方法使用的也是 < > 比较 。
//        最终的原因就是空值使用< > 比较时会报NullPointerException
//        public static int compare(double d1, double d2) {
//            if (d1 < d2)
//                return -1;           // Neither val is NaN, thisVal is smaller
//            if (d1 > d2)
//                return 1;            // Neither val is NaN, thisVal is larger
//            ........
//        }
//        compareTo、compare方法在Integer、 Float、 Double、 Long 等多个类中都存在,都可以使用
//-------------------------------------------------------------------------

//        Double d1 = 0.2;
//        Double d2 = null;
//        System.out.println(Double.compare(d1, d2)); //NullPointerException

        Double d1 = 0.2;
        Double d2 = null;
        System.out.println( d1 < d2 ); //NullPointerException//        Double d1 = 0.2;
//        



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: