[英]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.