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

String.ValueOf() to replace NULL with string null when calling a method

提问人:Arun Palanisamy 提问时间:4/2/2019 最后编辑:Arun Palanisamy 更新时间:4/12/2019 访问量:720

问:

当我调用某个方法时,我试图用它来替换 null。但它仍然显示.这可能很简单,但我遗漏了一些东西。String.valueOf()nullpointerexception

我有这样的声明

myvar = this.kind.name().toLowerCase()   

它正在投掷.每当我得到 NPE 时,我都试图保持字符串“NULL”。所以我试过这个java.lang.NullPointerException

myvar = String.valueOf(this.kind.name().toLowerCase()) -- not working

我从其他帖子中发现它可能不起作用,因为我们的方法过载,并建议在下面使用。但它仍然不起作用。在这种情况下如何分配字符串?String.valueOf(char[])String.valueOf(object)null

myvar = String.valueOf((this.kind.name().toLowerCase()) null))
Java 字符串 NullPointerException

评论

0赞 Arun Palanisamy 4/2/2019
@joe,我不是在问什么是.请阅读问题。nullpointerexception
1赞 ChristophS 4/2/2019
显示 NPE 跟踪。我希望name()(应该是getName()?)返回NULL。
3赞 rsp 4/2/2019
你确定它不是空的吗?this.kind
1赞 ChristophS 4/2/2019
可能是,这就是我要求堆栈跟踪的原因。
1赞 rsp 4/2/2019
@Crazy2crack 如果为 null,则应能够从堆栈跟踪中确定该值。您可以通过添加 if 条件或类似 的代码来处理这种情况。this.kindString.valueOf(this.kind == null ? null : this.kind.name()).toLowercase()

答:

10赞 Ashishkumar Singh 4/2/2019 #1

您应该使用

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"

评论

0赞 Arun Palanisamy 4/2/2019
谢谢,但不幸的是,它仍然抛出 NPE :(
0赞 Ashishkumar Singh 4/2/2019
调试代码并检查返回的内容String.valueOf(this.kind.name())
0赞 ChristophS 4/2/2019
@Crazy2crack:因此,添加堆栈跟踪以查看谁引发了异常
4赞 rsp 4/2/2019 #2

如果为 null,则应该能够从堆栈跟踪中确定该值。this.kind

您可以通过添加 if 条件或类似

String.valueOf(this.kind == null ? null : this.kind.name()).toLowercase()