Class X{
Class<B> object;
public setObject(Class<B> a){....}
}
Interface B{}
Interface C extends B {}
我實例X這樣的,類型注射在Spring XML和Java配置
X x = new X();
x.setObject(C.class);
當我建立它抱怨需要Class<B>
代碼中發現Class<C>
。由於C擴展B,我不能使用C.class嗎?如果有的話,可以解釋一下爲什麼?
我做了同樣的事情,使用Spring的基於XML的bean創建它工作得很好。豆的定義是
<bean id="dummy" class="X">
<property name"object" value="C">
</bean>
這工作得很好。我沒有得到爲什麼在Java中實例化會失敗。