空指针exception

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

如果你使用

if (x == null) 

不会得到NullPointerException

我怀疑你在做什么:

 if (xy == null) 

因为x为null而抛出,而不是因为xy为null。

如果这不能解释它,请发布您用于测试无效的代码。

我猜你做的是这样的,

  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

你能展示你写的代码片段吗?== null永远不会抛出NPE

如果您正在检查“s”是否为空,则不要在“s”之后应用点(。)。 执行该操作会抛出NullPOinterException,因为应用点(。)意味着您正尝试访问指针位置,此位置目前基本为空!

还尝试使用库函数来检查字符串是空还是空。 您可以使用来自apache库的StringUtils.isEmpty(s)检查两者