[英]Nullpointer exception
這可能是一個重復的問題。 我將一個字符串變量初始化為 null。我可能會也可能不會用一個值更新它。現在我想檢查這個變量是否不等於 null,無論我嘗試什么我都會得到一個空指針異常。我不能拋出空指針異常,因為它很昂貴。是否有任何有效的解決方法。TIA
如果你使用
if (x == null)
你不會得到NullPointerException
。
我懷疑你在做:
if (x.y == null)
拋出是因為x
為空,而不是因為xy
為空。
如果這不能解釋它,請發布您用來測試無效性的代碼。
我猜你正在做這樣的事情,
String s = null;
if (s.equals(null))
你要么像這樣檢查 null
if (s == null)
更好的方法是忽略 null 並像這樣檢查預期值,
if ("Expected value".equals(s))
在這種情況下,當 s 為 null 時,結果始終為 false。
字符串是不可變的
@Test(expected = NullPointerException.class)
public void testStringEqualsNull() {
String s = null;
s.equals(null);
}
@Test
public void testStringEqualsNull2() {
String s = null;
TestCase.assertTrue(s == null);
}
我只比較 s==null
你能展示你寫的代碼片段嗎 s==null 永遠不會拋出 NPE
如果您正在檢查“s”是否為空,則不要在“s”之后應用點(.)。 這樣做會拋出 NullPOinterException,因為應用 dot(.) 意味着您正在嘗試訪問目前基本上為 null 的指針位置!
還可以嘗試使用檢查字符串是 null 還是空的庫函數。 您可以使用 apache 庫中的 StringUtils.isEmpty(s),它檢查了兩者
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.