空指针异常

时间:2009-08-14 12:52:06

标签: java nullpointerexception

有可能这可能是一个重复的问题。 我将一个String变量初始化为null。我可能会或可能不会使用value更新它。现在我想检查这个变量是否不等于null和我尝试的任何东西我得到一个空指针异常。我不能抛出nullpointer例外,因为它很昂贵。有任何有效的解决方法.TIA

5 个答案:

答案 0 :(得分:3)

如果您使用

if (x == null)

你将获得NullPointerException

我怀疑你在做:

if (x.y == null)

因为x为空而抛出,而不是因为x.y为空。

如果没有解释,请发布您用来测试无效的代码。

答案 1 :(得分:3)

我猜你正在做这样的事情,

  String s = null;

  if (s.equals(null))

你要么像这样检查null

  if (s == null)

更好的方法是忽略null并只检查这样的期望值,

  if ("Expected value".equals(s))

在这种情况下,当s为null时,结果始终为false。

答案 2 :(得分:1)

字符串是不可变的

@Test(expected = NullPointerException.class)
public void testStringEqualsNull() {
    String s = null;
    s.equals(null);
}

@Test
public void testStringEqualsNull2() {
    String s = null;
    TestCase.assertTrue(s == null);
}

答案 3 :(得分:1)

  
    

我正在比较s == null only

  

可以显示您编写的代码段吗? s == null永远不会抛出NPE

答案 4 :(得分:0)

如果要检查“ s”是否为空,则不要在“ s”之后应用点(。)。这样做会抛出NullPOinterException,因为应用dot(。)意味着您正在尝试访问的指针位置现在基本上是null!

还尝试使用库函数来检查字符串是否为null或为空。您可以使用apache库中的StringUtils.isEmpty(s)进行检查