ClassA
、、などのツリークラスがありClassB
ますClassC
。ClassA
とClassB
拡張しClassC
ます。私は2つ持っていますMultimaps
-Multimap<Integer, ClassA>
そしてMultimap<Integer, ClassB>
私はこの2つのマルチマップを1つにマージしたいと思います。私はいくつかの解決策を見つけようとしましたが、失敗しました。私はsthを試しました。好きですMultimap<Integer, ? extends ClassC>
が、私がそれを正しくするかどうか、そして2つのマルチマップを一緒にマージできるかどうかはわかりません。誰かが私を助けることができますか?ご回答ありがとうございます、私はすべての助けに感謝します。
4101 次
2 に答える
8
Multimap<Integer, ? extends ClassC>
つまり、ジェネリック型は拡張する任意の型にすることができますClassC
が、型は固定する必要があります。つまり、allClassA
またはallのいずれかになりますClassB
。Multimap<Integer, ClassC>
したがって、代わりに使用する必要があります。ClassA
タイプとの両方を受け入れますClassB
。
于 2013-02-18T15:54:43.253 に答える
7
Multimap<Integer, ClassC> combine(Multimap<Integer, ? extends ClassC> a, Multimap<Integer, ? extends ClassC> b) {
Multimap<Integer, ClassC> combined = new SetMultimap<Integer, ClassC>(); // or whatever kind you'd like
combined.putAll(a);
combined.putAll(b);
return combined;
}
于 2013-02-18T15:55:56.687 に答える