我正在寻找一个很好的模式来执行以下操作:我有一个类FooBar<A,B>
,我知道它A
有一个带有单个B
参数的构造函数。我想要一个FooBar
带有以下签名的受保护方法:
protected A chuckNorris42(B b); // intent: return new A(b)
当然,上面提到的“意图”是不可编译的。作为一种解决方法,我将此方法抽象化,并在我用内联FooBar
实现的具体类进行实例化时chuckNorris42
:
FooBar<Chuck, Norris> = new FooBar<Chuck, Norris>() {
protected Chuck chuckNorris42(Norris norris) {
return new Chuck(norris);
}
}
它有效,但我想知道是否有更好或更清洁的方法来实现相同的目标,所以我决定在这里提出这个问题。