Я пытаюсь создать интерфейс, который реализует некоторые из моих классов. Хотя это отлично работает для одного типа T:Вложенный общий тип интерфейса
public interface AsyncResponse<T> {
void processFinish(T output);
}
Это позволяет использовать processFinish<String>
и т.д.
Выполнение этой работы в общих списках, кажется, не. Или, по крайней мере, я не могу понять, как разрешить одно из следующих условий:
- Укомплектованный вывод LinkedHashSet.
- ArrayList мощность.
Я попытался следующие, но это не сработало:
public interface AsyncGenericResponse<T<X>>{
void processFinish(T<X> output);
}
и
public interface AsyncGenericResponse<LinkedHashSet<T>{
void processFinish(LinkedHashSet<T> output);
}
Ни одно из решений, казалось, работали. Как я могу это решить, и это возможно?
Кроме того, рекомендуется использовать '' Collection супер-тип вместо конкретного 'Set' или' list' если вам просто нужна коллекция, но дон Не хочу указывать точный тип на уровне параметра. –
Blacklight
@Matthijs Но в этом случае, пока он будет работать для ваших типов «List», но он больше не будет работать для типов, например «String»? – Unheilig
Но нет ли возможности сделать так, чтобы в этом случае LinkedHashSet использовался как общий тип, который использует переменную? Как в моем интерфейсе, используя>? –
Matthijs