Java 또는 Apache Commons에 Varargs Null Check 기능이 있습니까?
-
03-07-2019 - |
문제
네 가지 변수가 있고 그 중 하나가 널인지 확인하고 싶습니다. 내가 할 수있는
if (null == a || null == b || null == c || null == d) {
...
}
그러나 내가 정말로 원하는 것은입니다
if (anyNull(a, b, c, d)) {
...
}
그러나 나는 그것을 직접 쓰고 싶지 않습니다. 이 기능은 공통 Java 라이브러리에 존재합니까? 나는 Commons Lang을 확인했고 그것을 보지 못했습니다. 다수의 주장을 수행하려면 Varargs를 사용해야합니다.
해결책
Java Library에서 할 수있는 최선은 다음과 같습니다.
if (asList(a, b, c, d).contains(null)) {
다른 팁
커먼즈에 있는지 모르겠지만 글을 쓰는 데 약 10 초가 걸립니다.
public static boolean anyNull(Object... objs) {
for (Object obj : objs)
if (obj == null)
return true;
return false;
}
당신은 정적 헬퍼를 어디에 두어야하는지 의견에 물었습니다.
public class All {
public static final boolean notNull(Object... all) { ... }
}
그런 다음 자격있는 이름을 사용하여
assert All.notNull(a, b, c, d);
그런 다음 수업도 마찬가지입니다 Any
그리고 같은 방법 isNull
.
Java 8에서는 훨씬 더 우아한 방식으로 할 수 있습니다.
if (Stream.of(a, b, c, d).anyMatch(Objects::isNull)) { ... }
또는 방법으로 추출 할 수 있습니다.
public static boolean anyNull(Object... objects) {
return Stream.of(objects).anyMatch(Objects::isNull);
}
그런 다음 다음과 같이 코드에서 사용하십시오.
if (anyNull(a, b, c, d)) { ... }
제휴하지 않습니다 StackOverflow