[英]Creating an instance of a static abstract class with Java reflection?
我有這個:
public interface Receiver extends x.y.a
{
public static abstract class Stub extends x.y.b implements Receiver
{
public Stub()
{
}
}
}
並想寫這個:
private final Receiver receiver = new Receiver.Stub()
{
};
使用反射。 這甚至可能嗎? 我可以找到Stub()構造函數,但當然它無法自行執行。
不,這是不可能的,如果你試圖通過反射實例化抽象類,你會得到異常。 無論如何總是記得你無法實例化抽象類。 雖然你可以創建匿名類。
據我所知,你無法創建抽象類的實例。 即使有反思。 如果那個課程不是抽象的,你可以簡單地打電話
Constructor c = Receiver.Stub.class.getConstructor(null);
Receiver r= (Receiver)c.newInstance(null);
你的代碼工作,沒有反思。 您正在創建一個匿名子類。 AFAIK使用反射創建子類(匿名)是不可能的。 也許這個帖子是提供信息的:
或者: 在使用反射時是否可以創建匿名類?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.