Java에서 null 및 빈 컬렉션을 검증하는 모범 사례
컬렉션이 비어 있는지 확인하고 싶다.null
누가 나에게 가장 좋은 방법을 알려줄 수 있니?
현재 아래와 같이 확인하고 있다.
if (null == sampleMap || sampleMap.isEmpty()) {
// do something
}
else {
// do something else
}
프로젝트에서 Apache Commons Collections 라이브러리를 사용하는 경우CollectionUtils.isEmpty
그리고MapUtils.isEmpty()
수집 또는 지도가 비어 있는지 또는 null인지 각각 확인하는 방법(즉, "안전함").
이러한 방법 뒤에 숨겨진 코드는 사용자 @icza가 그의 대답에 써 놓은 것에 가깝다.
여러분이 무엇을 하든지 간에, 여러분이 적은 코드를 쓸수록, 코드의 복잡성이 감소함에 따라 더 적은 코드를 테스트할 필요가 있다는 것을 기억하라.
그것이 그것을 확인하는 가장 좋은 방법이다.도우미 방법을 작성하여 다음 작업을 수행하십시오.
public static boolean isNullOrEmpty( final Collection< ? > c ) {
return c == null || c.isEmpty();
}
public static boolean isNullOrEmpty( final Map< ?, ? > m ) {
return m == null || m.isEmpty();
}
Spring 프레임워크를 사용하면CollectionUtils
두 컬렉션(목록, 배열) 및 지도 등에 대해 모두 확인하십시오.
if(CollectionUtils.isEmpty(...)) {...}
개인적으로, 나는 그보다는 빈 컬렉션을 사용하는 것을 선호한다.null
알고리즘에 대해 수집이 비어 있는지 여부에 상관없는 방식으로 알고리즘을 작동시키도록 한다.
당신이 봄을 사용할 때 당신은 사용할 수 있다.
boolean isNullOrEmpty = org.springframework.util.ObjectUtils.isEmpty(obj);
여기서 obj는 임의의 [지도, 위치, 배열, 모든 것...]이다.
그렇지 않은 경우: 코드:
public static boolean isEmpty(Object[] array) {
return (array == null || array.length == 0);
}
public static boolean isEmpty(Object obj) {
if (obj == null) {
return true;
}
if (obj.getClass().isArray()) {
return Array.getLength(obj) == 0;
}
if (obj instanceof CharSequence) {
return ((CharSequence) obj).length() == 0;
}
if (obj instanceof Collection) {
return ((Collection) obj).isEmpty();
}
if (obj instanceof Map) {
return ((Map) obj).isEmpty();
}
// else
return false;
}
문자열이 가장 좋은 경우:
boolean isNullOrEmpty = (str==null || str.trim().isEmpty());
컬렉션 개체가 비어 있는지, null인지 여부를 확인하십시오.아래에 제시된 이 모든 방법은 org.properties.properties.properties.properties4에 존재한다.CollectionUtils 패키지.
목록 또는 컬렉션 개체 유형을 선택하십시오.
CollectionUtils.isEmpty(listObject);
CollectionUtils.isNotEmpty(listObject);
Map type of Objects를 확인하십시오.
MapUtils.isEmpty(mapObject);
MapUtils.isNotEmpty(mapObject);
모든 방법의 반환 유형은 부울이다.
사용할 수 있다org.apache.commons.lang.Validate
의 "NotTempty" 방법:
Validate.notEmpty(myCollection)
-> 지정된 인수 집합이 null도 아니고 0(원소 없음)도 아닌지 검증한다. 그렇지 않으면 예외를 둔다.
만약 당신이 null을 확인할 필요가 있다면, 그것이 방법이다.그러나 이 기능을 제어할 수 있는 경우 언제든지 빈 컬렉션을 반환하고 나중에 빈 컬렉션만 확인하십시오.
이 실은 C#과 거의 같은 것이지만, 원칙은 자바에게도 똑같이 잘 적용된다.거기서 언급했듯이, null은 오직 다음과 같은 경우에만 반환되어야 한다.
- null은 좀 더 구체적인 것을 의미할 수 있다.
- API(계약)가 null을 반환하도록 강제할 수 있음.
지도 사용을 포함한 모든 컬렉션의 경우:isEmpty
이 수집 객체에 존재하는 방법그러나 다음 전에 무효 검사를 수행해야 한다.
Map<String, String> map;
........
if(map!=null && !map.isEmpty())
......
'IT이야기' 카테고리의 다른 글
선택 및 선택 취소된 예외 선택 시기 (0) | 2022.04.19 |
---|---|
vuej에서 vuex를 사용하여 소품을 통해 상태 항목을 가져오는 방법 (0) | 2022.04.19 |
한 줄에 배열 목록 초기화 (0) | 2022.04.19 |
공리와 함께 부울을 반환하는 방법 (0) | 2022.04.18 |
중단점이 초과되었는데, 어떻게 하면 유효하게 만들 수 있을까? (0) | 2022.04.18 |