Sie müssen doppelten Code analysieren und ihn in ein Re-Refaktor umwandeln verwendbare Methode.
ursprünglichen Schnipsel gegeben,
public boolean isVoNotNull() {
return null != this.cardNo && StringUtils.isNotBlank(this.cardNo)
&& null != this.otp && StringUtils.isNotBlank(this.otp)
&& null != this.password && StringUtils.isNotBlank(this.password)
&& null != this.userid && StringUtils.isNotBlank(this.userid)
&& null != this.type && StringUtils.isNotBlank(this.type)
&& null != this.walletMobileNo && StringUtils.isNotBlank(this.walletMobileNo);
}
wir die folgende sich wiederholende Teil identifizieren können:
null != this.xxx && StringUtils.isNotBlank(this.xxx)
Da StringUtils#isNotBlank()
already Kontrollen für null
wir es weiter vereinfachen kann.
StringUtils.isNotBlank(this.xxx)
Vorausgesetzt, dass Sie dies eine variable Anzahl von Zeiten aufrufen müssen, am besten wäre es ein Verfahren zum Umgestalten eines variable number of arguments nehmen, die sie alle in einer Schleife überprüft.
public static boolean isNoneBlank(String... strings) {
for (String string : strings) {
if (!StringUtils.isNotBlank(string)) {
return false;
}
}
return true;
}
Oder wenn Sie bereits auf Java 8 mit Streams and Lambda Unterstützung:
public static boolean isNoneBlank(String... strings) {
return Arrays.stream(strings).allMatch(StringUtils::isNotBlank);
}
Jetzt können Sie Gebrauch davon, wie unten machen:
public boolean isVoNotNull() {
return isNoneBlank(this.cardNo, this.otp, this.password, this.userid, this.type, this.walletMobileNo);
}
Sie weiter die vorformulierten verringern könnte durch Entfernen der unnötigen this
.
public boolean isVoNotNull() {
return isNoneBlank(cardNo, otp, password, userid, type, walletMobileNo);
}
Dies alles war ein Gerät der Don't Repeat Yourself (DRY) Software-Engineering-Prinzip.
Das sagte, wie msandiford wies darauf hin, dass Apache Commons Lang StringUtils
seit Version 3.2 already genau diese Methode hat. Wenn Sie es noch nicht haben, sollten Sie Apache Commons Lang auf mindestens 3.2 aktualisieren.
public boolean isVoNotNull() {
return StringUtils.isNoneBlank(cardNo, otp, password, userid, type, walletMobileNo);
}
Wenn Sie 'StringUtils' von Apache verwenden, warum suchen Sie dort nach' null'? – Tom