メインメソッドを持つ抽象クラスを作成し、それを拡張した開発者がmainメソッドを実装する必要がないようにします。私はまた、メインメソッドで何が起こるかをコントロールしたい。現在の実際のクラスを静的メインメソッドにアクセスする方法
私が作成している抽象基本クラスはNanoHTTPD
を拡張し、実行するクラスの型のクラスオブジェクトであるパラメータでServerRunner.run()
を呼び出してサーバーを起動します。ここで
は、私がこれまで持っているものです。
public abstract class FlexibleServer extends NanoHTTPD
{
public DeadSimpleMicroserver(int port)
{
super(port);
}
public static void main(String[] args)
{
ServerRunner.run(FlexibleServer.class);
}
}
問題は、このクラスが抽象的であることから、将来の開発者がクラスを拡張することになるので、私はの実際の型であることをServerRunner.run()
にパラメータを必要とするということですサブクラスなので、FlexibleServer.class
を使用することはできません。
パラメータをthis.classに変更しようとしましたが、コンパイルエラーが発生しました。「this」は静的コンテキストから参照できません(main()
は静的です)。
実際のサブクラスのクラスオブジェクトを得る方法は、main()
ですか?