java.lang.NullPointerException异常原因及解决
生活随笔
收集整理的這篇文章主要介紹了
java.lang.NullPointerException异常原因及解决
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
java.lang.NullPointerException異常原因是因為創建了一個引用類型的變量卻沒有指向任何對象而又去通過這個引用類型變量加點的形式去訪問非靜態的方法及屬性。
給出三種情況,
第一種情況,在啟動類中定義了引用類型變量,賦值為空:
/*** 引用類型變量沒有指向對象所引起的空指針異常* @author Superhero* @version 2018年12月16日上午10:32:43*///圖書類
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;}
}
//啟動類
public class NullPointerExceptionTest1
{public static void main(String[] args){Books book=null;//下面一行代碼會報指針異常錯誤:System.out.println("name:"+book.getName()+", author:"+book.getAuthor()+", price:"+book.getPrice());}
}
第二種情況:創建了一個引用類型的數組,卻沒有給數組元素指向對象而調用了。
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]沒有指向對象,所以也報空指針異常for(Books book : books)System.out.println("name:"+book.getName()+", author:"+book.getAuthor()+", price:"+book.getPrice());}
}
第三種情況是在類中定義了引用類型屬性,卻沒有指向對象而調用了非靜態的方法或屬性,和第一種情況類似,這里就不給代碼了。
總結
以上是生活随笔為你收集整理的java.lang.NullPointerException异常原因及解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对字符数组输入输出数组名是否加取地址符的
- 下一篇: Exception in thread