我當前的代碼如下所示(請注意,getId()
返回string
值):如何更正使用查找空值的if/else語句?
if(person.getId()==null){
//do something
else{
//do something else
}
不過,我仍然得到一個null Pointer exception
如果person.getId()
值爲空。
我該如何解決這個問題?
我當前的代碼如下所示(請注意,getId()
返回string
值):如何更正使用查找空值的if/else語句?
if(person.getId()==null){
//do something
else{
//do something else
}
不過,我仍然得到一個null Pointer exception
如果person.getId()
值爲空。
我該如何解決這個問題?
一般測試是一樣的東西:
爲了您的例子中,你需要大概,如果存在的人做一些事情,沒有ID。
if (person != null && person.getId() == null) {
// Do something, for example create person on the db
}
這解決了person
爲空的問題。這可能有person
null
這裏
注是錯誤的。
嘗試:
if(person == null || person.getId() == null) {
// do something
} else {
// do something else
}
'if(person == null && person.getId()== null)'應該選擇在if(person == null || person.getId()== null)''上,因爲JVM會在person == null如果在||時不爲null (或)會導致第二個陳述也被檢查。 – kouljaboy
乘坐read about Optional那是在Java8
介紹對於某些類,如String,你可以做 「價值」 .equals(MyString的),而不是myString.equals(「值「),如果myString爲null,則斷言將失敗,而不是拋出NPE。
做一個如果不是空檢查,然後其他。 – Li357
這取決於「做某事」做什麼。 – Eran
你確定這個人不是空? –