2012-04-23 61 views
1

我有春豆狀:類擴展了另一個類,並在java中實現接口可以被轉換爲anyd這些類型?

<bean id="testBean" class="TestBean" 
    ...... 
    <property name="resolver" ref="resolver".... 

class Resolver extends BaseResolver implements IManagementInterface 

類testBean這個二傳手:

public void setResolver (IManagementInterface resolver) { 
this.resolver=resolver; 
... 

但是當我跑我得到異常:

不能轉換價值類型的解析器轉換爲所需的類型IManagementInte rface。

但這似乎不正確 - 因爲Resolver也是類型IManagementInterface。這個錯誤的意義是什麼?或者可能是我應該乾淨安裝我的所有項目?

+0

你可以發佈''完整定義嗎? – Xaerxess 2012-04-23 09:44:26

回答

2

先做一個乾淨的安裝。如果這不會使問題消失,那麼您可能會遇到類加載器問題。如果您的Resolver實例(和相應的類聲明)由不同的類加載器加載而不是TestBean,則它屬於不同的類加載器領域,並且它(或特別是其超級接口IManagementInterface)因此被JVM視爲與完全不同的類型IManagementInterface參數類型TestBean.setResolver。所以不能投到另一個。

請參閱this earlier answer of mine以驗證這是否是根本原因。

相關問題