Обобщенная реализация и объявление будут выглядеть так:
public interface IModelLayer<T> {
void getEvents(T resultEvents);
}
Интерфейс уже определен правильно, только его реализация должна быть изменена.
Реализация класса:
public class EventsRepository implements IModelLayer<ICallBack<EventBrite>> { //Generic type definition
...
@Override
public void getEvents(ICallback<EventBrite> resultEvents) {
WebEventsDataSource.getInstance().getEvents(resultEvents);
}
}
Например, в других случаях:
public class StringRepository implements IModelLayer<ICallBack<String>> { //Generic type definition
...
@Override
public void getEvents(ICallback<String> resultEvents) {
//todo do something with the callback stuff.
}
}
Дело в том, что вы не определили универсальный тип, который хотите использовать.Таким образом, вы меняете implements IModelLayer
на implements ModelLayer<YourType>
, и метод будет использовать определенный вами тип.