Функция с интерфейсом в качестве аргумента
У меня есть интерфейс под названием Layer:
public interface Layer {}
и класс, который реализует этот интерфейс под названием VectorLayer
:
public class VectorLayer implements Layer {}
У меня также есть функция, которая имеет Layer
в качестве аргумента
public void create(Layer layer){}
Я хотел бы использовать create(new VectorLayer())
но затмение выдает мне следующую ошибку:
Метод create(Layer) в типе SelectFeature не применим для аргументов (VectorLayer) VolexampleApplication.java /volExample/src/com/example/volexample
Я думаю, что обычно это должно работать. Так в чем здесь проблема?
PS:VectorLayer
, Layer
а также SelectFeature.create()
являются функцией и классом из обертки openlayers (библиотеки) для VAADIN.
2 ответа
Пример, который вы приводите, должен работать нормально.
Вы уверены, что Layer
осуществляется VectorLayer
такой же, как тот, который требуется SelectFeature
, Вы можете убедиться в этом, проверив импорт в обоих классах (или указав полное имя, то есть имя пакета).
Я бы попробовал помочь компилятору:
final Layer layer = new VectorLayer();
SelectFeature.create(layer);