空指针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)检查两者