[英]java referencing Class<> as their subtype
我正在嘗試做這樣的事情。
public class myClass2 extends myClass1
{
@Override
public void printStuff() { }
}
public class dostuff
{
public dostuff()
{
doSomething(myClass2.Class());
}
public void doSomething(Class<myClass1> cls)
{
cls.printStuff();
}
}
我收到這樣的編譯錯誤
必需:myClass1找到:myClass2
我如何才能告訴該函數除myClass1的子類以外的其他類?
public void doSomething(Class<? extends myClass1> cls)
{
try {
cls.newInstance().printStuff();
} catch (InstantiationException e) {
....
} catch (IllegalAccessException e) {
....
}
}
要讓該方法期望myClass1
子類,您必須使用有界的類型參數。
您必須創建該類的實例才能調用方法printStuff()
。
您在dostuff
也有錯誤。 它應該是 :
public void dostuff()
{
doSomething(myClass2.class);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.