是否有任何内置实用程序来检查" null"字符串而不是null?

时间:2016-12-17 01:30:57

标签: java string null equals

我从Apache Avro GenericRecord中提取变量值,因此我的String变量值将变为" null"而不是null。

GenericRecord payload = decoder.decode(record.value());
String userid = String.valueOf(payload.get("userId"));
// here userid is null string as "null"
System.out.println(Strings.isNullOrEmpty(userid));

因此" null"字符串,我的sysout打印为false。我如何检查这一点,以便打印出" true" bcoz string是一个空字符串。有没有内置的功能,或者我必须写自己的" .equals"检查?

2 个答案:

答案 0 :(得分:1)

"null"是纯字符串类型,只需使用String类型的API:.equals("null")即可。

答案 1 :(得分:1)

您可能使用"null"方法自行生成String.valueOf(...)字符串。来自String#valueOf的JavaDoc:

  

返回:       如果参数为null,则字符串等于“null”;否则,返回obj.toString()的值。

因此,我建议使用以下代码:

    GenericRecord payload = decoder.decode(record.value());
    boolean isNull = payload.get("userId") == null;
    if (!isNull) {
        String userid = payload.get("userId").toString();
    }

这可以防止因不生成而与"null"字符串进行比较的问题。