私はクラスを持っています:FooBar<A,B>
クラスがあり、A
にはB
という単一のコンストラクタがあることがわかります。上記の「意図」は、コンパイルではありません。もちろん、Javaジェネリック:単一のコンストラクタ引数でAをインスタンス化するB
protected A chuckNorris42(B b); // intent: return new A(b)
:私は、次のシグネチャでFooBar
で保護されたメソッドを持っているしたいと思います。回避策として、私は、このメソッドの抽象を作り、私は具体的なクラスでFooBar
をインスタンス化の時点で私はchuckNorris42
インライン実装:それは作品
FooBar<Chuck, Norris> = new FooBar<Chuck, Norris>() {
protected Chuck chuckNorris42(Norris norris) {
return new Chuck(norris);
}
}
を、私は同じことを達成するために、よりよいか、きれいな方法があればと思いました私はここで質問をすることにしました。
ハム、doesnの現在の値に対するそのファクトリのインスタンスを与えてみましょうこのようなものをジェネリッククラスに直接書くのを禁止しますか? –
AFAIK一般的な引数のクラスにアクセスする方法はありません –
ええ、申し訳ありません。 Class of Chuckを関数に渡す必要があります。 –