[英]Why is this throwing a null pointer exception?
我在for循環中有以下代碼
MyClass myobj= new MyClass(customers, price);
System.out.println(myobj);
if (!myobj.equals(null)) { //same happesn with myobj != null
System.out.println("not null");
}
myMethod(myobj);
myMethod主體為:
private void myMethod(MyClass myobj) {
if (myobj.totalDemand()) {
//bla bla
}
在Junit中運行代碼后,“ if(myobj.totalDemand())”行將引發NullPointerException,但是控制台將顯示“ not null”
如果調用myobj.equals(null)
,則不能保證該類的equals()
的實現不會拋出NullPointerException
,並且如果myobj
為null
,則您將得到一個NullPointerException
嘗試在.equals()
上調用.equals()
。 null
對象。
要測試null
,請使用以下代碼:
if (myobj == null)
要測試不為空,請使用以下命令:
if (myobj != null)
如果myobj為null,則將得到NullPointerException,如果不是,則控制台將輸出“ not null”。 那么,在每個調用周期中,變量customers和price中是否有任何內容?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.