次のことを行うための適切なパターンを探しています。クラスがあり、単一のパラメーターを持つコンストラクターがある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);
}
}
それは機能しますが、同じことを達成するためのより良い方法やよりクリーンな方法があるかどうか疑問に思ったので、ここで質問することにしました.