いくつかの内部クラスを持つ抽象クラスを拡張し、静的メソッドを介してその内部クラスのインスタンスを作成できるようにしたいのですが、「ITask 型の囲みインスタンスにアクセスできません。型の囲みインスタンスで割り当てを修飾する必要がありますITask (egxnew A() x は ITask のインスタンス)"
内部クラスは外部クラスのインスタンスによって作成する必要があることがわかりましたが、外部クラスには抽象メソッドがあり、そのインスタンスを作成できません。私はそれらの作成を制御したくないので、親を拡張する内部クラスを作成しました。私のパターンを機能させる方法はありますか?
私のコード:
public abstract class ITask {
public abstract void Execute(Subscriber itm);
static public ITask CreateSendTask(Buffer buffer)
{
return new SendData(buffer);
}
static public ITask CreateSTTask(Ticket sid)
{
return new StartTransmission(sid);
}
static public ITask CreateETTask(Ticket sid)
{
return new EndTransmission(sid);
}
private class SendData extends ITask
{
/// some implemetation...
}
private class StartTransmission extends ITask
{
/// some implemetation...
}
private class EndTransmission extends ITask
{
/// some implemetation...
}
}
問題は Create(.*)Task メソッドにあります。
ありがとう!