簡體   English   中英

使用Java反射創建靜態抽象類的實例?

[英]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使用反射創建子類(匿名)是不可能的。 也許這個帖子是提供信息的:

在Java中,只有父類的實例才可以動態創建匿名子類實例嗎?

或者: 在使用反射時是否可以創建匿名類?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM