繁体   English   中英

如何使用 Java 中的 if 语句检查字符串是否为空或 null?

[英]How do I check a string is empty or null using if statement in Java?

我需要首先使用RegoDocumentType.getByValue(createOrderRequest.getIdDocument().getIdType())获取枚举本身

然后检查 null 的值,如果不是 null,则返回枚举值。 否则,它将默认返回createOrderRequest.getIdDocument().getIdType()

那么,如何使用 RegoDocumentType 枚举重构代码以仅使用一个 if 语句来满足 NRIC/11B 和 FIN smag 值到 rego 值?

这是我的枚举:

public enum RegoDocumentType {
    
    NRIC_11B("NRIC/11B", IdentityType.NRIC.toValue()),
    FIN("Employment Pass", IdentityType.EM_PASS.toValue()),
    ;
    private static final Map<String, RegoDocumentType> BY_SMAG_VALUE = new HashMap<>();
    static {
        for (RegoDocumentType identityType : values()) {
            BY_SMAG_VALUE.put(identityType.getSmagValue().toLowerCase(), identityType);
        }
    }
    private final String smagValue;
    private final String regoValue;
    RegoDocumentType(String smagValue, String regoValue) {
        this.smagValue = smagValue;
        this.regoValue = regoValue;
    }
    public String getSmagValue() {
        return smagValue;
    }
    public String getRegoValue() {
        return regoValue;
    }
    public static RegoDocumentType getBySmagValue(String smagValue)
    { return BY_SMAG_VALUE.get(smagValue.toLowerCase()); }
}
    String something = "";
    if(something == null || something.isEmpty()) {
        // return A
    } else {
        // return B
    }

或者

    String something = "";
    return something == null || something.isEmpty() ? [value A] : [value B];

createOrderRequest.getIdDocument().getIdType()在你的情况下似乎是一个字符串。 您不能从getBySmagValue返回字符串。 考虑返回 null 或抛出异常:

public static RegoDocumentType getBySmagValue(String smagValue) { 
    if (smagValue == null) reutrn null;
    return BY_SMAG_VALUE.get(smagValue.toLowerCase()); 
}

或者

public static RegoDocumentType getBySmagValue(String smagValue) { 
    if (smagValue == null) throw new IllegalStateException();
    return BY_SMAG_VALUE.get(smagValue.toLowerCase()); 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM