Я объект определяется следующим образом:Generics Wildcards Правильное использование
protected Map<String, ? extends List<? extends LightGeometry>> geoms=new HashMap<String,List<LightGeometry>>();
я пытаюсь вставить в объект, который выглядит соответствует подстановочный
ArrayList<LightGeometry> points=new ArrayList<LightGeometry>();
points.add((LightGeometry)new LightPoint(pt));
geoms.put("point", points);
Компилятор выдает ошибку, которая говорит:
метод
put(String, capture#18-of ? extends List<? extends LightGeometry>
) в типеMap<String,capture#18-of ? extends List<? extends LightGeometry>>
не применяется для аргументов(String, ArrayList<LightGeometry>)
Что мне не хватает?
EDIT: Почему я использую подстановочные с общими типами Это в основном сводится к возможности назначить список (который я получаю через службу) к в geoms
объект, который находится в другом классе, без чтобы просеять список в бросок.
public void onSuccess(Map<String, ArrayList<LightPolygon>> result) {
// TODO Auto-generated method stub
GWT.log("" + result.size());
Log.debug("" + result.size());
long startTime = System.currentTimeMillis();
if (overlay != null) {
overlay.setData(result);
overlay.update();
Log.debug("time to add features: "
+ (System.currentTimeMillis() - startTime));
}
}
Если бы я был сделать geoms
переменной а Map<String, List<LightGeometry>>
затем я получаю сообщение об ошибке броска, который говорит, что я не могу назначить Map<String,ArrayList<LightPolygon>>
к «Карта>`
Я хочу, чтобы иметь возможность вставлять значение без использования отливки – giscope