成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java Double NullPointerException

Hujiawei / 1025人閱讀

摘要:?jiǎn)栴}描述重構(gòu)計(jì)量項(xiàng)目后臺(tái),運(yùn)行單元測(cè)試時(shí),遇到了錯(cuò)誤。是基本數(shù)據(jù)類型,默認(rèn)值為為類類型,默認(rèn)值為。運(yùn)行單元測(cè)試,通過(guò)總結(jié)有時(shí)候,很多奇奇怪怪的問(wèn)題,往往都有很簡(jiǎn)單的解釋,只是我們一時(shí)沒(méi)想到。

問(wèn)題描述

重構(gòu)計(jì)量項(xiàng)目后臺(tái),運(yùn)行單元測(cè)試時(shí),遇到了錯(cuò)誤。

145行:

又沒(méi)有在null上調(diào)方法,兩個(gè)Double相乘,怎么會(huì)空指針呢?

嘗試

打開(kāi)IDEA新建一個(gè)普通的Java項(xiàng)目。

double
package com.mengyunzhi;

public class Main {

    double testDouble;

    private void test() {
        System.out.println(testDouble);
        double result = testDouble * 10;
    }

    public static void main(String[] args) {
        Main main = new Main();
        main.test();
    }
}

運(yùn)行結(jié)果:

Double
package com.mengyunzhi;

public class Main {

    Double testDouble;

    private void test() {
        System.out.println(testDouble);
        Double result = testDouble * 10;
    }

    public static void main(String[] args) {
        Main main = new Main();
        main.test();
    }
}

運(yùn)行結(jié)果:

分析

看了兩個(gè)運(yùn)行結(jié)果,大體應(yīng)該就能分析出來(lái)原因了。

Doubledouble的包裝類。double是基本數(shù)據(jù)類型,默認(rèn)值為0.0Double為類類型,默認(rèn)值為null。

就像將Double對(duì)象賦值給基本類型double時(shí),是不會(huì)報(bào)錯(cuò)的,因?yàn)橛幸粚与[式調(diào)用,將Double轉(zhuǎn)化為double。

而我猜想這里的空指針應(yīng)該也和這個(gè)有關(guān)系,對(duì)象是沒(méi)法乘的,所以隱式調(diào)用轉(zhuǎn)化為double,然后再運(yùn)算。

因?yàn)闆](méi)有初始化,所以Double對(duì)象默認(rèn)是null,在null隱式調(diào)用方法,所以就空指針異常。

解決

實(shí)例化的時(shí)候維護(hù)上倍數(shù)。

運(yùn)行單元測(cè)試,通過(guò)!

總結(jié)

有時(shí)候,很多奇奇怪怪的問(wèn)題,往往都有很簡(jiǎn)單的解釋,只是我們一時(shí)沒(méi)想到。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71689.html

相關(guān)文章

  • java第三方包學(xué)習(xí)之lombok

    摘要:不久前發(fā)現(xiàn)有一個(gè)第三方庫(kù)可以在一定程度上幫助我們從體力勞動(dòng)中解救出來(lái),它就是。來(lái)看自動(dòng)生成的方法中對(duì)于數(shù)組采用的是。檢查傳入對(duì)象是否為,若為,則拋出異常。比如自動(dòng)拋受檢異常,而無(wú)需顯式在方法上使用語(yǔ)句。 前言 Laziness is a virtue!每當(dāng)寫(xiě)pojo類時(shí),都會(huì)重復(fù)寫(xiě)一些setter/getter/toString方法等大量的模版代碼,無(wú)聊繁瑣卻又不得不做,這會(huì)讓這個(gè)類變...

    GitCafe 評(píng)論0 收藏0
  • 1、異常概述和繼承體系 2、原因及處理方式 3、運(yùn)行時(shí)異常 4、重寫(xiě)異常處理 5、Throwable

    摘要:案例演示該句運(yùn)行時(shí)發(fā)生了數(shù)組索引越界異常,由于沒(méi)有處理異常,導(dǎo)致程序無(wú)法繼續(xù)執(zhí)行,程序結(jié)束。用來(lái)進(jìn)行某種異常的捕獲,實(shí)現(xiàn)對(duì)捕獲到的異常進(jìn)行處理。運(yùn)行時(shí)期異常一旦發(fā)生需要程序人員修改源代碼。 01異常的概述 * A: 異常的概述 * a:什么是異常 * Java代碼在運(yùn)行時(shí)期發(fā)生的問(wèn)題就是異常。 * b:異常類 * 在Java中,把異常信息...

    GT 評(píng)論0 收藏0
  • Java 中的類型、值和變量 之 基本類型

    摘要:在中存在兩種類型基本類型和引用類型。值得注意的是,基本類型的值的狀態(tài)不會(huì)被共享。浮點(diǎn)類型和它們的值中的浮點(diǎn)類型遵循標(biāo)準(zhǔn)的定義。布爾類型和它們的值類型表示兩個(gè)邏輯量,和。 眾所周知,Java是一門(mén)靜態(tài)類型的語(yǔ)言,這意味著所有的變量和表達(dá)式的類型會(huì)在編譯時(shí)確定。同時(shí),Java 還是一門(mén)強(qiáng)類型的語(yǔ)言,因此變量的值或表達(dá)式的結(jié)果的類型都會(huì)受到限制(比如一個(gè)聲明為 String 的變量不的值不可...

    beita 評(píng)論0 收藏0
  • lombok:推薦使用的編譯時(shí)Getter/Setter等類似代碼生成庫(kù)

    摘要:每個(gè)用的孩子都應(yīng)該了解下主要依賴編譯時(shí)代碼生成技術(shù),幫你自動(dòng)生成基于模板的常用的代碼,譬如最常見(jiàn)的與。另一種是通過(guò)類似于這樣基于注解的在運(yùn)行時(shí)利用反射動(dòng)態(tài)添加,不過(guò)這樣的缺陷是會(huì)影響性能,并且有一定局限性。 Lombok 每個(gè)用Java的孩子都應(yīng)該了解下Lombok Lombok主要依賴編譯時(shí)代碼生成技術(shù),幫你自動(dòng)生成基于模板的常用的Java代碼,譬如最常見(jiàn)的Getter與Setter...

    dance 評(píng)論0 收藏0
  • Lombok介紹、使用方法和總結(jié)

    摘要:使用方法能以簡(jiǎn)單的注解形式來(lái)簡(jiǎn)化代碼,提高開(kāi)發(fā)人員的開(kāi)發(fā)效率。能通過(guò)注解的方式,在編譯時(shí)自動(dòng)為屬性生成構(gòu)造器方法。出現(xiàn)的神奇就是在源碼中沒(méi)有和方法,但是在編譯生成的字節(jié)碼文件中有和方法。沒(méi)法實(shí)現(xiàn)多種參數(shù)構(gòu)造器的重載。 1 Lombok背景介紹 官方介紹如下: Project Lombok makes java a spicier language by addi...

    30e8336b8229 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<