2016-02-02 38 views
0

我見過這兩個答案:String中的參數化上界有界泛型類?

什麼實際上,我試圖做的是:

final Class<? extends Xyz<?>> clazz = Class.forName(name).asSubclass(Xyz<?>.class); 

但是Xyz<?>.class是無效的Java。有沒有我應該使用的魔法咒語?

回答

0

我不太清楚,如果我明白你的問題。

如果你的意思是,你的代碼行沒有編制,您可以通過鑄造修復它,你可以在下面的例子中看到:

package test; 

public class Test<T> { 

    public static void main(String[] args) throws ClassNotFoundException { 
     @SuppressWarnings("unchecked") 
     final Class<? extends Test<?>> clazz = (Class<Test<?>>) Class.forName("test.Test").asSubclass(Test.class); 
     //... do something with the class 
    } 

} 

如何避免警告爲「未登記「例如,您可以在此處閱讀: How do I address unchecked cast warnings?

+0

對不起,我真的問是否有避免演員陣容? – Alun

0

Class<? extends Xyz<?>>僅當Xyz本身是泛型類型時纔有意義。

+0

'Xyz'確實是一個通用的參數化類型。 – Alun