java.lang.NullPointerException異常問(wèn)題解決方案
java.lang.NullPointerException異常原因是因?yàn)?strong>創(chuàng)建了一個(gè)引用類型的變量卻沒(méi)有指向任何對(duì)象而又去通過(guò)這個(gè)引用類型變量加點(diǎn)的形式去訪問(wèn)非靜態(tài)的方法及屬性。
給出三種情況,
第一種情況,在啟動(dòng)類中定義了引用類型變量,賦值為空:
/**
* 引用類型變量沒(méi)有指向?qū)ο笏鸬目罩羔槷惓?
* @author Superhero
* @version 2018年12月16日上午10:32:43
*/
//圖書(shū)類
class Books
{
private String name;
private String author;
private double price;
public Books()
{
}
public Books(String name, String author, double price)
{
this.name = name;
this.author = author;
this.price = price;
}
public String getName()
{
return name;
}
public String getAuthor()
{
return author;
}
public double getPrice()
{
return price;
}
}
//啟動(dòng)類
public class NullPointerExceptionTest1
{
public static void main(String[] args)
{
Books book=null;
//下面一行代碼會(huì)報(bào)指針異常錯(cuò)誤:
System.out.println("name:"+book.getName()+", author:"+book.getAuthor()+", price:"+book.getPrice());
}
}
第二種情況:創(chuàng)建了一個(gè)引用類型的數(shù)組,卻沒(méi)有給數(shù)組元素指向?qū)ο蠖{(diào)用了。
public class NullPointerExceptionTest2
{
public static void main(String[] args)
{
Books[] books = new Books[3];
books[0] = new Books("NullPointerException","Superhero",88.8);
//books[1],book[2]沒(méi)有指向?qū)ο?,所以也?bào)空指針異常
for(Books book : books)
System.out.println("name:"+book.getName()+", author:"+book.getAuthor()+", price:"+book.getPrice());
}
}
第三種情況是在類中定義了引用類型屬性,卻沒(méi)有指向?qū)ο蠖{(diào)用了非靜態(tài)的方法或?qū)傩裕偷谝环N情況類似,這里就不給代碼了。
到此這篇關(guān)于java.lang.NullPointerException異常問(wèn)題解決方案的文章就介紹到這了,更多相關(guān)java.lang.NullPointerException異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java空指針異常NullPointerException的原因與解決方案
- 解決java.lang.NullPointerException問(wèn)題(空指針異常)
- Java如何優(yōu)雅地避免空指針異常(NullPointerException)
- Java中redisTemplate注入失敗NullPointerException異常問(wèn)題解決
- 詳解Java中NullPointerException異常的原因和解決辦法
- 詳解Java中NullPointerException異常的原因詳解以及解決方法
- java.lang.NullPointerException 如何處理空指針異常的實(shí)現(xiàn)
- Java中NullPointerException的異常解決
相關(guān)文章
springboot+dynamicDataSource動(dòng)態(tài)添加切換數(shù)據(jù)源方式
這篇文章主要介紹了springboot+dynamicDataSource動(dòng)態(tài)添加切換數(shù)據(jù)源方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
SpringBoot2底層注解@ConfigurationProperties配置綁定
這篇文章主要介紹了SpringBoot2底層注解@ConfigurationProperties配置綁定,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
關(guān)于TransmittableThreadLocal線程池中線程復(fù)用問(wèn)題的解決方案
這篇文章主要介紹了關(guān)于TransmittableThreadLocal線程池中線程復(fù)用問(wèn)題的解決方案,線程池復(fù)用線程,如果子線程執(zhí)行完未移除上下文,則會(huì)導(dǎo)致后續(xù)線程可以取到之前線程設(shè)置的屬性,需要的朋友可以參考下2023-11-11
Java泛型extends關(guān)鍵字設(shè)置邊界的實(shí)現(xiàn)
這篇文章主要介紹了Java泛型extends關(guān)鍵字設(shè)置邊界的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
SpringBoot項(xiàng)目注入?traceId?追蹤整個(gè)請(qǐng)求的日志鏈路(過(guò)程詳解)
本文介紹了如何在單體SpringBoot項(xiàng)目中通過(guò)手動(dòng)實(shí)現(xiàn)過(guò)濾器或攔截器來(lái)注入traceId,以追蹤整個(gè)請(qǐng)求的日志鏈路,通過(guò)使用MDC和配置日志格式,可以在日志中包含traceId,便于問(wèn)題排查,同時(shí),還在返回的包裝類中注入traceId,以便用戶反饋問(wèn)題,感興趣的朋友一起看看吧2025-02-02
java高效累加map中相同key對(duì)應(yīng)的Value值
在Java中,對(duì)于??Map??中的相同鍵(key)進(jìn)行值(value)累加的操作是常見(jiàn)的需求之一,下面將詳細(xì)介紹幾種不同的方法來(lái)完成這一任務(wù),d大家可以根據(jù)需要進(jìn)行選擇2025-10-10
MybatisPlus 插入或更新數(shù)據(jù)時(shí)自動(dòng)填充更新數(shù)據(jù)解決方案
本文主要介紹了MybatisPlus 插入或更新數(shù)據(jù)時(shí)自動(dòng)填充更新數(shù)據(jù)解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
springboot集成screw反向生成數(shù)據(jù)庫(kù)說(shuō)明文檔
screw是一個(gè)一鍵式生成數(shù)據(jù)庫(kù)文檔的開(kāi)源工具包,目前screw可以生成word、md和html格式類的文檔,本文主要來(lái)講講如何通過(guò)screw反向生成數(shù)據(jù)庫(kù)說(shuō)明文檔,感興趣的可以了解下2025-01-01
一文詳解如何在SpringMVC的視圖中渲染模型數(shù)據(jù)
SpringMVC是一個(gè)基于Spring框架的Web框架,它提供了一種方便的方式來(lái)處理 HTTP 請(qǐng)求和響應(yīng),在SpringMVC中,視圖是用來(lái)渲染模型數(shù)據(jù)的組件,它們負(fù)責(zé)將模型數(shù)據(jù)轉(zhuǎn)換為HTML、JSON、XML等格式的響應(yīng),在本文中,我們將討論如何在SpringMVC中的視圖中渲染模型數(shù)據(jù)2023-07-07

