2つの一般的なJavaインタフェース(Foo<T>
とBar<T>
)があり、その中には多くの実装が存在する可能性があるとします。今、私たちは両方のT
に同じ値を使用して、単一のクラス内の各のいずれかを保存することを前提としていますが、正確な実装は入力された保つ:Java:型パラメータ間の相関の確立
public interface FooBar<T, TFoo extends Foo<T>, TBar extends Bar<T>> {
TFoo getFoo();
TBar getBar();
}
以上、T
がいることを強制する唯一の目的のために使用されていますTFoo
とTBar
のクラスは同じ型パラメータを使用します。 FooBar
にこのタイプのパラメータを追加すると、二つの理由冗長ようだ:
FooBar
は、実際にはおよそT
全く気にしません。- は
TFoo
とTBar
から推測できます。
FooBar
の型パラメータの一覧を乱雑にすることなく、このような条件を適用する方法がある場合は、私の質問になります。理論的にの代わりにFooBar<String, StringFoo, StringBar>
と書いたのは、相当のFooBar<StringFoo, StringBar>
です。
私は、 'public interface FooBar 、TBar Bar> {}'をJavaに拡張するのと同じ構文を追加しています。 –
Smallhacker
私はこれが可能ではないと思います。 'T'は一般的ではありません。グレート質問+1 –
[冗長一般パラメータ]の可能な複製(http://stackoverflow.com/questions/9684186/redundant-generic-parameters) –