Разрешение общего типа JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Разрешение общего типа Java

Сообщение Anonymous »

Я недавно начал работать с Java и все еще запутался, когда имел дело с общими типами. Ниже приведен упрощенный сценарий, в котором у меня возникают некоторые проблемы.public class GenericListInside {
private Map> mapping = new HashMap();

public void addListing(Class clazz, List object) {
mapping.put(clazz, object);
}
}
< /code>
Я могу вызвать Addlisting без проблем: < /p>
GenericListInside gli = new GenericListInside();
List list = new ArrayList();
//add something to list
gli.addListing(Foo.class, list);
< /code>
Теперь я решил создать класс для предоставления интерфейса жидкости. Что -то вроде: < /p>
with(Foo.class).use(list);
< /code>
Затем я пришел с: < /p>
public class FluidInserter {
Class clazz;
GenericListInside gli = new GenericListInside();

public FluidInserter with (Class clazz) {
this.clazz = clazz;
return this;
}

public void use(List list) {
gli.addListing(clazz, list);
}
}
< /code>
Но когда я пытаюсь скомпилировать I получить: < /p>

Ошибка: (18, 12) Java: Метод Адбифлязинг в классе util.genericlistinside не может быть применен к данным типам;

требуется: java.lang.class, java.til.List. java.lang.class, java.util.list

Причина: предполагаемый тип не соответствует ограничению равенства (S)

. неправильно?

Подробнее здесь: https://stackoverflow.com/questions/353 ... resolution

Вернуться в «JAVA»