[英]Java instantiate class of parameterized type
這是我所擁有的:
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(),我得到了String。
如何解決使用Class2的通用類型實例化Class1的問題?
你不能。 在運行時, Class2
不知道其通用類型參數是什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.