2012-10-01 28 views
0

我學習一般,在一些point.here得到擊中通用的困惑是我的課Java的外卡

public class MyValidator{ 

    private Class providerClass; 

    public MyValidator(Container container){ 
     setProviderClass(container.getInstanc(ValidationProvider.class),"my.providerClass"); 
    } 

    public void setProviderClass(Class<? extends ValidationProvider> providerClass) 
    { 
     this.providerClass = providerClass; 
    } 

} 

簽名是

<T> T getInstance(Class<T> type, String name) 
Gets an instance of the given dependency which was declared in ContainerBuilder. 

Container是的一個inbuild DI機制我使用的平臺,但是當我從構造函數中調用setter方法時,我在Eclipse中遇到以下異常:

方法在類型MyValidator d setProviderClass(類)不適用的參數(ValidationProvider)

我知道我不是正常,但不知道該怎麼辦this.My意圖以下的合同都設定在運行的類時間和它應該接受所有那些impliments ValidationProvider這是一個接口implimentation。

回答

1

getInstance(Class type,String name)return T not Class - > ValidationProvider的一個實例,不是一個類對象。

這就是異常消息所說的:你需要一個Class對象,但是你傳遞了一個ValidationProvider對象。