いいえ、それは不可能ですが、2つの別々のメソッドを作成できます。
public <T extends Map> void test(T t) {
// do the map part
}
public <T extends Collection> void test(T t) {
// do the collection part
}
それらを処理方法で混合したい場合は、次のように記述することもできます。
private void mixedTest(Object t) {
if (t instanceof Map) {
// map part
} else if (t instanceof Collection) {
// collection part
} else {
throw new RuntimeException("Unknown object");
}
}
と電話:
public <T extends Map> void test(T t) {
mixedTest(t);
}
public <T extends Collection> void test(T t) {
mixedTest(t);
}
しかし、とにかくそれが素晴らしいコードにつながるかどうかはわかりません。最初の部分は、さまざまなタイプのオブジェクトのさまざまな実装に固執します。