Объявите интерфейс Indexable<T>, где add принимает T, а get возвращает T по индексу. Параметр типа задаётся при реализации либо использовании интерфейса.
Определение универсального интерфейса с операциями добавления и доступа по индексу
Объявите интерфейс Indexable<T>, где add принимает T, а get возвращает T по индексу. Параметр типа задаётся при реализации либо использовании интерфейса.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо создать обобщённый интерфейс, который предоставляет два метода: один для вставки элемента, другой — для получения элемента по заданному индексу. Интерфейс должен быть реализуемым для любых типов данных с помощью дженериков.
package com.narozhnyi;
public interface Indexable {
// метод для добавления элемента
// метод для получения элемента по индексу
}
Ответ
Объявите интерфейс Indexable<T>, где add принимает T, а get возвращает T по индексу. Параметр типа задаётся при реализации либо использовании интерфейса.
package com.narozhnyi;
public interface Indexable<T> {
void add(T element);
T get(int index);
}
Например, Indexable<String> принимает и возвращает строки без приведения типов. Контракт стоит уточнить: add добавляет в конец, индексы начинаются с нуля, неверный индекс вызывает IndexOutOfBoundsException. Поддержку null определяет реализация. Примитивы напрямую аргументами generics не являются: вместо int используют Integer.