1

いくつかの内部クラスを持つ抽象クラスを拡張し、静的メソッドを介してその内部クラスのインスタンスを作成できるようにしたいのですが、「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 メソッドにあります。

ありがとう!

4

1 に答える 1

3

内部クラスが静的メソッドから作成されている場合は、内部クラスを静的にする必要があります。したがって、それを囲む ITask へのアクセスは必要ありません。

また、Java の命名規則も尊重する必要があります。メソッドは小文字で始まります。

于 2012-06-15T05:41:05.003 に答える