public boolean isValidCardDetails(CardDetailsTypeBean cardDetailsTypeBean) throws EnrollmentReqInvalidException {
if (cardDetailsTypeBean.getCardNumber() == null || "".equals(cardDetailsTypeBean.getCardNumber())) {
throw new EnrollmentReqInvalidException("ECDOO16", "card no is mandatory");
}
if (cardDetailsTypeBean.getNameOnCard() == null || "".equals(cardDetailsTypeBean.getNameOnCard())) {
throw new EnrollmentReqInvalidException("ECDOO17", "name on card is mandatory");
}
if (cardDetailsTypeBean.getCvv() == 0 || "".equals(String.valueOf(cardDetailsTypeBean.getCvv()))) {
throw new EnrollmentReqInvalidException("ECDOO18", "cvv is mandatory");
}
if (cardDetailsTypeBean.getExpDate() == null || "".equals(cardDetailsTypeBean.getExpDate())) {
throw new EnrollmentReqInvalidException("ECDOO19", "exp date must be required");
}
return false;
}
在这里,我想问一下获得卡号并检查为空之后,为什么在这里使用“”。等于?谁能向我解释一下?有点困惑?
答案 0 :(得分:0)
这行代码:
cardDetailsTypeBean.getCardNumber() == null || "".equals(cardDetailsTypeBean.getCardNumber())
仅验证cardNumber
是null
还是等于空字符串。空字符串与null
值不同,因此此代码检查getter读取的每个字段是否返回非空,非空值。
答案 1 :(得分:0)
实际上是多余的。
这样做的原因是保证在逻辑比较另一边的equals
语句的顺序,因为{{1 }}旨在产生NullPointerException
。
它之所以可能存在,是因为该代码正在显式检查代码String.equals(null)
和一个空字符串。 >
答案 2 :(得分:0)
int main() {
return -1;
}
与""
不同,因为null
是""
的值。您的String
可能会以card number
""
表示对null
的引用没有价值。