0
的下面是我有:的Java類實例化參數化類型
class Class1 <T>
{
public void foo()
{
ParameterizedType parameterizedType = (ParameterizedType)getClass().getGenericSuperclass();
Class<T> type = (Class<T>) parameterizedType.getActualTypeArguments()[0];
System.out.println(type);
}
}
class Class2 <G>
{
public Class2()
{
Class1<G> class1 = new Class1<G>();
}
}
但是當我打電話class1.foo(),我得到的超類,而不是參數。
如果我做
Class1<String> class1 = new Class1<String>();
,然後調用內部的Class1 class1.foo(),我得到的字符串。
我該如何修復實例Class1與泛型類型2?
你是如何設法爲Class1情況獲得'String'的? – Akdeniz
「,然後在Class1中調用class1.foo(),我得到String。」不,你會遇到ClassCastException。 – newacct
是的,你是對的 – Jason