String.ValueOf()在调用方法时用字符串null替换NULL

时间:2019-04-02 11:01:10

标签: java string nullpointerexception

我正在尝试使用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))

2 个答案:

答案 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()
相关问题