>source

Map을 초기화할 수 있다는 것을 알고 있습니다. T,T> HashMap을 사용하는 객체. 그러나 목록 내에 있으면 왜 이것을 할 수 없습니까?

import java.util.Map;
import java.util.List;
import java.util.HashMap;
import java.util.LinkedList;
class Example {
    public static void main(String[] args) {
        List<Map<Integer, Integer>> lists= new LinkedList<HashMap<Integer, Integer>>();
        //error: incompatible types: LinkedList<HashMap<Integer,Integer>> cannot be converted to List<Map<Integer,Integer>>    }
}

Map은 HashMap이 자동으로 변환될 수 있는 보다 일반적인 유형이어야 한다고 생각했습니다.

다이아몬드 오퍼레이터가 존재하는데 도대체 왜 그런 짓을 하는 겁니까? List>목록= new LinkedList<>();

Elliott Frisch2022-01-14 23:06:08

나는 이것이 왜 할 수 없는지 이해하려고 노력하고 있습니다.

M.S2022-01-14 23:09:20

List>a를 포함하는 참조가 있고 해당 목록을 List>b= a로 참조하면 형식 안전성을 잃게 됩니다. b.add(new TreeMap<>()) 다음 HashMapz= a.get(0); 캐스트 예외를 제공합니다.

matt2022-01-14 23:23:17
  • 이전 android : I Storage Access Framework를 사용하여 파일 링크 f.cfg를 탐색합니다. 파일을 선택하면 앱에서 f.dat와 같은 다른 파일을 자동으로 로드해야 합니다. 어떻게 해야 합니까?
  • 다음 C에서 char와 int를 결합해야 합니다.