0
Ich habe TaskVO
als Basisklasse. Ich habe TaggingTaskVo
die TaskVO
Zuordnung von Concrete map zu Generic typed Map
Hier sind meine zwei Map Erklärung, erste Version wird mit Generika und zweite Version ist darauf spezialisiert, erstreckt.
Map<String, List<? extends TaskVO>> genericTaskVoMap = new HashMap<String, List<? extends TaskVO>>();
Map<String, List<TaggingTaskVo>> taskVoMap = new HashMap<String, List<TaggingTaskVo>>();
Warum kann ich nicht taskVoMap zuweisen genericTaskVoMap?
genericTaskVoMap = taskVoMap; //Type mismatch: cannot convert from Map<String,List<TaggingTaskVo>> to Map<String,List<? extends TaskVO>>
Wenn ich jedoch Typliste zuweisen, wird es sich nicht beschweren.
List<? extends TaskVO> genericTaskVoList = new ArrayList<>();
List<TaskVO> taskVoList = new ArrayList<TaskVO>();
genericTaskVoList = taskVoList; //No compilation error
Etwas wenig seltsam, weil ich weiß, es Liste sein wird dann Wildcard warum verwenden für –
Dies zu tun hat, mit das Prinzip der verschachtelten Platzhalter, überprüfen Sie diese Website http://bayou.io/draft/Capturing_Wildcards.html#Nested_Wildcards "Capture-Konvertierung gilt nur für Wildcards auf der obersten Ebene, nicht auf verschachtelten Platzhalter." –