我正在寻找一个很好的模式来执行以下操作:我有一个类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);
}
}
它有效,但我想知道是否有更好或更清洁的方法来实现相同的目标,所以我决定在这里提出这个问题。