У меня есть помощник ModelDecorator. Я хочу, чтобы иметь следующий публичный APIJava - Оценки класса public API
class ModelDecorator<T>{
public static <T> ModelDecorator<T> create(Class<T> clazz);
public <SUPER> T from(SUPER fromInstance);
}
Таким образом, учитывая классы A, B расширяет A, он может быть использован, как это:
A a = new A();
B b = ModelDecorator.create(B.class).from(a);
Но я хочу, чтобы иметь ограничения на Т и SUPER , поэтому я убеждаюсь, что только субклассы могут быть созданы с использованием API. В этот момент, я могу сделать:
C c = new C();
B b = ModelDecorator.create(B.class).from(c);
Где B не наследуется от С.
Любые идеи? Благодаря
Возможный дубликат [Почему параметр типа Java не имеет нижней границы?] (Http://stackoverflow.com/questions/4902723/why-cant-a-java-type-parameter-have-a- нижняя граница) – shmosel