java - 怎么判断map key对应的值是不是空的
ringa_lee
ringa_lee 2017-04-18 09:07:32
0
4
3035

System.out.println("a**"+map.get(a).getClass());
System.out.println("a**"+map.get(a));

-------------分割线------------
a**class java.util.ArrayList
a**[]

以上是控制台打印出来的东西。

map.get(a).toString().equals("");一直是false
map.get(a)!=null;一直是true

ringa_lee
ringa_lee

ringa_lee

모든 응답(4)
左手右手慢动作

if(map.get(a)==null)빈지 알 수 없나요?

Ty80

Java에서 null과 빈 배열은 동일한 개념이 아닙니다. 배열이 비어 있는지 확인하려면 다음과 같이 작성하면 됩니다.

`
if (map.get(a) == null || map.get(a).size() == 0)
`

제작 환경이라면 apache common 등의 툴 클래스를 사용하는 것이 좋으며, 스프링에서 제공하는 CollectionUtils.isEmpty(map.get(a))

小葫芦

ArrayList가 인스턴스화되면 확실히 null이 아닙니다.
toString 메소드는 오류 보고 없이 실행될 수 있으므로 인스턴스화되어야 합니다. toString은 최상위 상위 클래스 Object의 메소드이므로 인스턴스화되지 않은 객체가 어떻게 이 메소드를 가질 수 있습니까?

으아악
洪涛

map.get(a).toString().equals(""); 항상 거짓

출력한 결과a**[]를 보면 map.get(a).toString()가 빈 문자열이 아니고 []이므로 "[]".equals("")은 항상 false

임을 알 수 있습니다.

map.get(a)! =null; 항상 참

map.get(a).toString()이 null 포인터 예외를 발생시키지 않으면 map.get(a)은 null이 아니어야 합니다

빈 판사

키에 해당하는 값이 항상 ArrayList인 경우 다음 방법을 사용할 수 있습니다.

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿