我有一個ModelDecorator助手。我希望它有下列公共APIJava - 類公共API上的界限
class ModelDecorator<T>{
public static <T> ModelDecorator<T> create(Class<T> clazz);
public <SUPER> T from(SUPER fromInstance);
}
因此,考慮到類A,B延伸的,可以這樣使用:
A a = new A();
B b = ModelDecorator.create(B.class).from(a);
但我想對T和SUPER界限,所以我確保只有子類可以使用API實例化。在這個時刻,我可以這樣做:
C c = new C();
B b = ModelDecorator.create(B.class).from(c);
如果B不從C
任何想法繼承?由於
可能的重複[爲什麼不能有一個Java類型參數有一個下界?](http://stackoverflow.com/questions/4902723/why-cant-a-java-type-parameter-havea-a-下界) – shmosel