我寫這是傳遞一個Class
作爲參數的方法,像這樣:指定一個類參數必須實現一個特定的接口
public void doStuff(Class<?> clazz) {
/* do stuff */
}
然後我可以調用的方法是這樣的:
doStuff(FooBar.class);
我該如何在編譯器級強制參數只能是實現特定接口的類?
我已經試過以下各項
public <T extends FooInterface> void doStuff(Class<T> clazz) {
/* do stuff */
}
- 但得到下面的語句編譯錯誤:
doStuff(FooBar.class); // FooBar implements FooInterface
如何正確地做到這一點?
後一個完整的小例子,重現問題,併發布準確和完整的編譯錯誤。 –
向我們展示'FooBar'類 – Sweeper
明白了 - 代碼本身是可以的,編譯錯誤是關於未捕獲的異常。圍繞實際方法調用的try/catch塊修復了它。謝謝! – user149408