문제

네 가지 변수가 있고 그 중 하나가 널인지 확인하고 싶습니다. 내가 할 수있는

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)) { ... }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top