我有以下的類/接口設置。使用java.lang.Class作爲方法參數的問題
- 接口IFoobar
- 類的BaseClass它實現IFoobar和是抽象
- 類ConcreteClassA延伸的BaseClass
- 類ConcreteClassB延伸的BaseClass
- 類ConcreteClassC延伸的BaseClass
我有一個方法,我需要傳遞上述具體的java.lang.Class的實例類。我是這樣宣佈的。
void doSomething(String id, Class<IFoobar> c)
然而,當我嘗試編譯,用java錯誤抱怨或多或少是這樣的:
doSomething(java.lang.String,java.lang.Class<IFoobar>) in javaclass cannot be applied to
(java.lang.String,java.lang.Class<ConcreteClassA>)
register("12345", ConcreteClassA.class);
^
1 error
我是最近才需要使用java.lang.Class中做的事情,所以我猜我缺少一些簡單的東西。我希望類型化的類聲明能夠像普通參數一樣工作,因爲具體類被識別爲接口的實例,但這顯然不是這種情況。
我試過了鑄造等各種方法,要麼沒有預期的結果,要麼有無效的代碼。所以任何想法,我需要做什麼,將不勝感激。
在此先感謝。
你怎麼能得到 「類」 的實例?你的意思是你想要傳遞任何類的對象嗎? –