[英]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.