这是我现在面临的问题。我有一个类,假设Foo
这个类定义了一个getBar
返回Bar
实例的方法。该类Bar
在内部定义Foo
并声明public static final
。我想做的是定义一个MyFoo
扩展的类,但Foo
我也想通过添加我自己的功能(方法、属性等)来扩展。我也想回来。Bar
MyBar
getBar
MyBar
问题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
and Bar
,所以它可以满足我的需求。Foo 是插件的主类,并扩展了一个名为 Builder 的类。Foo 定义了一个名为的方法perform
,该方法包含执行构建的所有操作。
Bar
包含用于配置目的的操作,Foo 需要 Bar 来获取这些信息。
所以我想做的是用 Foo 扩展MyFoo
并添加一些配置MyBar
。如您所见,MyFoo
需要通过调用来获取这些配置getBar();
第二件事是我无法控制MyFoo
和MyBar
阻碍我的是,我无法扩展 Bar。我怎样才能做到这一点?