亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Java Double NullPointerException

Hujiawei / 1200人閱讀

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

問題描述

重構(gòu)計量項目后臺,運行單元測試時,遇到了錯誤。

145行:

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

嘗試

打開IDEA新建一個普通的Java項目。

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();
    }
}

運行結(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();
    }
}

運行結(jié)果:

分析

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

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

就像將Double對象賦值給基本類型double時,是不會報錯的,因為有一層隱式調(diào)用,將Double轉(zhuǎn)化為double。

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

因為沒有初始化,所以Double對象默認(rèn)是null,在null隱式調(diào)用方法,所以就空指針異常。

解決

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

運行單元測試,通過!

總結(jié)

有時候,很多奇奇怪怪的問題,往往都有很簡單的解釋,只是我們一時沒想到。

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

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/71689.html

相關(guān)文章

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

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

    GitCafe 評論0 收藏0
  • 1、異常概述和繼承體系 2、原因及處理方式 3、運行時異常 4、重寫異常處理 5、Throwable

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

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

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

    beita 評論0 收藏0
  • lombok:推薦使用的編譯時Getter/Setter等類似代碼生成庫

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

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

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

    30e8336b8229 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<