분명히 HashMap<Integer, HashMap<Integer, Rescue>>
잘못이 아니라 여러 곳에서보다 (당신이 당신의 객체를 실체화) 한 곳에서 변경을해야은 HashMap<Integer, Ambulance>
입니다. Rescue
을 ? extends Rescue
으로 바꾼 경우에도 이와 유사한 작업을 수행 할 수 있습니다.
그러나 ? extends
을 두 번 사용하면 유형 시스템이 손상되지 않습니다.
HashMap<Integer, ? extends HashMap<Integer, ? extends Rescue>> getRescue() {
대부분의 자바 프로그래머는 오히려 특정 구현보다 종류 Map
더 일반적인를 사용하는 것을 선호합니다. 당신은보다 간결 삼항 연산자를 사용하도록 방법을 몸을 변경하는 경우
Map<Integer, ? extends Map<Integer, ? extends Rescue>> getRescue() {
덧붙여, : 컴파일러가 당신을 위해 유형을 작품으로
return a ? time_id_police : time_id_ambulance;
당신은 약간 더 도움이 오류 메시지가 :
R.java:18: incompatible types
found : java.util.HashMap<java.lang.Integer,capture of ? extends java.util.HashMap<java.lang.Integer,? extends Rescue>>
required: java.util.HashMap<java.lang.Integer,java.util.HashMap<java.lang.Integer,Rescue>>
return a ? time_id_police : time_id_ambulance;
^
1 error
내가 원했던 것. 실제 맵은 5 레벨 깊이이기 때문에 다소 장황하다 :) 감사합니다. –
정확히 무엇을하고 있는지 알지 못하지만 키 객체를 소개 할 가치가 있을지도 모릅니다. 사용하려는 fives 키를 구성하는 단일 객체 귀하의 중첩 된지도. –