저는 키가 제네릭 종류 Key<T>
이고 값은 List<T>
입니다. 키가 Key<String>
의 인스턴스 인 경우이 값은 List<String>
이어야하며 동일한 규칙이 다른 키 - 값 쌍에도 적용됩니다. 나는 다음을 시도했지만 그것은 컴파일되지 않습니다 :이 나쁜하지만 현재 더 좋은 선택의 여지가 알고generics 변수를 사용하여지도를 선언하는 방법은 무엇입니까?
Map<Object, List> map;
: 현재
Map<T, List<T>> map;
내가 "부분"제네릭을 선언해야 . 이 상황에서 제네릭을 사용할 수 있습니까?
UPDATE은 어쩌면 내가 분명히 내 문제를 표현하지 않았다. , 일반 유형 중 하나가 될 수있는 반면, 키와 값이 동일한 제네릭 형식을 항상 있어야한다
map.put(new Key<String>(), new ArrayList<Integer>());
:
map.put(new Key<String>(), new ArrayList<String>());
map.put(new Key<Integer>(), new ArrayList<Integer>());
그리고 다음 코드는 컴파일되지해야합니다 내가 할 수있는지도를 원하는 그리고 분명히지도를 확장하는 것이 나의 요구 사항을 충족시키지 못합니다.
공백은 문제가되지 않습니다. 가능성이 높습니다. OP가 수정해야 할 코드가 더 필요합니다. – Nishant
'T'유형의 키 또는 ''유형의 키를 사용하고 있습니까? –
실제 시나리오에서는 Nishant와 Geoff가 답변에 캡슐화를 사용하여 문제를 해결하고이를 실제 코드에 적용하면됩니다. –