我正在尝试使用String.valueOf()
来替换我调用某些方法时的null。但是它仍然显示nullpointerexception
。这可能很简单,但我错过了一些东西。
我有这样的声明
myvar = this.kind.name().toLowerCase()
它正在抛出java.lang.NullPointerException
。我试图获得NPE时保持字符串“ NULL”。所以我尝试了
myvar = String.valueOf(this.kind.name().toLowerCase()) -- not working
我从其他帖子中发现它可能不起作用,因为我们重载了方法String.valueOf(char[])
和String.valueOf(object)
并建议在下面使用。但仍然无法正常工作。在这种情况下,如何分配字符串null
?
myvar = String.valueOf((this.kind.name().toLowerCase()) null))
答案 0 :(得分:10)
您应该使用
myvar = String.valueOf(this.kind.name()).toLowerCase();
不是
myvar = String.valueOf(this.kind.name().toLowerCase());
valueOf()
的文档中描述了
如果参数为null,则为等于“ null”的字符串;否则,返回obj.toString()的值
因此,String.valueOf(this.kind.name())
将返回"null"
答案 1 :(得分:4)
如果this.kind
为null,则应该能够从堆栈跟踪中确定。
您可以通过添加if条件或类似的代码来处理这种情况
String.valueOf(this.kind == null ? null : this.kind.name()).toLowercase()