source

java.util을 실행합니다.List. is Empty() 목록 자체가 null인지 확인합니다.

factcode 2023. 1. 29. 20:16
반응형

java.util을 실행합니다.List. is Empty() 목록 자체가 null인지 확인합니다.

한다java.util.List.isEmpty()리스트가 그 자체인지 아닌지를 확인하다null아니면 제가 직접 확인해야 하나요?

예를 들어 다음과 같습니다.

List<String> test = null;

if (!test.isEmpty()) {
    for (String o : test) {
        // do stuff here            
    }
}

이거를 던질까?NullPointerException왜냐하면 시험은null?

전화하려고 하는 건isEmpty()에 대한 방법null참조하다List test = null;) 이것은 확실히 큰 충격을 줄 것이다.NullPointerException해야죠.if(test!=null)대신 (체크)null첫 번째)를 참조해 주세요.

방법isEmpty()true를 반환한다.ArrayList오브젝트에는 요소가 포함되어 있지 않습니다.그렇지 않으면 false입니다.List먼저 당신의 경우에서 인스턴스화해야 합니다.null).

질문을 보시면 좋을 것 같습니다.

Apache Commons 컬렉션을 사용할 것을 권장합니다.

https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/CollectionUtils.html#isEmpty-java.util.Collection-

그 결과, 실장은 꽤 양호하고, 문서화되어 있습니다.

/**
 * Null-safe check if the specified collection is empty.
 * <p>
 * Null returns true.
 *
 * @param coll  the collection to check, may be null
 * @return true if empty or null
 * @since Commons Collections 3.2
 */
public static boolean isEmpty(Collection coll) {
    return (coll == null || coll.isEmpty());
}

아니요.java.util.List.isEmpty()리스트가 다음과 같은지 여부를 체크하지 않는다.null.

Spring 프레임워크를 사용하는 경우CollectionUtilsclass를 클릭하여 목록이 비어 있는지 여부를 확인합니다.이 기능은 또한null참조.다음은 Spring 프레임워크의 코드 조각입니다.CollectionUtils학급.

public static boolean isEmpty(Collection<?> collection) {
    return (collection == null || collection.isEmpty());
}

스프링을 사용하지 않는 경우에도 이 코드를 조정하여 사용자 이름을 추가할 수 있습니다.AppUtil학급.

이렇게 하면NullPointerException- 에서 인스턴스 메서드를 호출하려고 할 때null참조 - 그러나 이와 같은 경우에는 에 대해 명시적으로 확인해야 합니다.null:

if ((test != null) && !test.isEmpty())

이 방법은, 무선 통신을 전파하는 것보다 훨씬 더 좋고, 또 명확합니다.Exception.

임의의 늘 참조로 임의의 메서드를 호출하면 항상 예외가 발생합니다.먼저 개체가 null인지 테스트합니다.

List<Object> test = null;
if (test != null && !test.isEmpty()) {
    // ...
}

또는 다음 로직을 캡슐화하는 메서드를 작성합니다.

public static <T> boolean IsNullOrEmpty(Collection<T> list) {
    return list == null || list.isEmpty();
}

다음 작업을 수행할 수 있습니다.

List<Object> test = null;
if (!IsNullOrEmpty(test)) {
    // ...
}

Lion의 대답에 더해서, 나는 당신이 더 좋은 것을 말할 수 있습니다.if(CollectionUtils.isNotEmpty(test)){...}.

또, null도 체크하기 때문에, 수동으로 체크할 필요는 없습니다.

, 예외가 발생합니다.아마도 당신은 PHP 코드에 익숙할 것입니다.empty($element)또,isset($element)자바에서는 그렇지 않습니다.

리스트에서 메서드가 직접 호출되기 때문에 쉽게 외울 수 있습니다(메서드는 리스트에 속합니다).목록이 없으면 방법이 없습니다.또한 Java는 이 메서드를 호출할 목록이 없다고 불평합니다.

독자적인 is Empty(복수 수집의 경우) 메서드를 사용할 수도 있습니다.이것을 Util 클래스에 추가합니다.

public static boolean isEmpty(Collection... collections) {
    for (Collection collection : collections) {
        if (null == collection || collection.isEmpty())
            return true;
    }
    return false;
}

언급URL : https://stackoverflow.com/questions/11512034/does-java-util-list-isempty-check-if-the-list-itself-is-null

반응형