java class类型参数_java – 如何从通用类型参数获取`.class`属性?
this question的接受答案描述了如何在通用< T>中創(chuàng)建T的實(shí)例。類。這涉及傳遞類< T>參數(shù)傳遞給Generic構(gòu)造函數(shù),并從中調(diào)用newInstance方法。
通用< Bar>的新實(shí)例然后創(chuàng)建,并傳遞參數(shù)Bar.class。
如果新通用類的泛型類型參數(shù)不是一些已知的類,如Bar,但它本身是一個(gè)通用類型參數(shù),你該怎么辦?假設(shè)我有一些其他類Skeet< J>并且我想創(chuàng)建一個(gè)Generic< J>的新實(shí)例。從那個(gè)類里面。然后,如果我嘗試傳入J.class我得到以下編譯器錯(cuò)誤:
cannot select from a type variable.
有沒有辦法解決?
對我來說觸發(fā)錯(cuò)誤的代碼的具體位是:
public class InputField
extends InputFieldArray
{
public InputField(String labelText)
{
super(new String[] {labelText}, W.class);
}
/* ... */
}
public class InputFieldArray
extends JPanel
{
/* ... */
public InputFieldArray(String[] labelText, Class clazz)
throws InstantiationException, IllegalAccessException
{
/* ... */
for (int i = 0 ; i < labelText.length ; i++) {
newLabel = new JLabel(labelText[i]);
newWidget = clazz.newInstance();
/* ... */
}
/* ... */
}
/* ... */
}
發(fā)生錯(cuò)誤,因?yàn)槲也荒軐慦.class。有沒有其他方法傳遞相同的信息?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java class类型参数_java – 如何从通用类型参数获取`.class`属性?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 忘却的旋律java2_mc忘却的旋律启动
- 下一篇: window安装python3后怎么用p