これが私が今直面している私の問題です。たとえば、クラスがあり、このクラスはインスタンスを返すというFooメソッドを定義します。クラスは内部で定義され、宣言されています。私がやりたいのは、拡張するクラスを定義することですが、独自の機能(メソッド、プロパティなど)を追加して拡張することもできます。私も戻りたいです。getBarBarBarFoopublic static finalMyFooFooBarMyBargetBarMyBar
問題はBar最終的なものです。これが私がやりたいことのイラストです:
public class Foo {
Bar bar = new Bar();
public Bar getBar(){
return bar;
}
....
public static final class Bar {
}
}
私がしたいのは:
public class MyFoo extends Foo {
public MyBar getBar(){ // here I want to return an instance of MyBar
}
public static final class MyBar extends Bar { // That's impossible since Bar is final
}
}
どうすればそれを達成できますか?
[編集]質問に詳細を追加しています。私は実際にJenkinsのプラグインを開発していますが、検索したところ、やりたい基本機能を提供するプラグインがあることに気付きましFooたBar。Foo私はカスタムしたいBarので、それは私のニーズに合うことができます。Fooはプラグインのメインクラスであり、Builderと呼ばれるクラスを拡張します。performFooは、ビルドを実行するためのすべての操作を含む
というメソッドを定義します。Bar構成目的の操作が含まれており、Fooはそれらの情報を取得するためにBarを必要とします。
だから私がやりたいのは、Fooを拡張しMyFoo、でいくつかの構成を追加することMyBarです。ご覧MyFooのとおり、これらの構成を呼び出す必要がありますgetBar();
MyFoo2つ目は、とのインスタンス化を制御できないことです。MyBar
私を阻んでいるのは、バーを拡張できないことです。どうすればそれを達成できますか?