6

ClassA、、などのツリークラスがありClassBますClassCClassAClassB拡張しClassCます。私は2つ持っていますMultimaps-Multimap<Integer, ClassA>そしてMultimap<Integer, ClassB>私はこの2つのマルチマップを1つにマージしたいと思います。私はいくつかの解決策を見つけようとしましたが、失敗しました。私はsthを試しました。好きですMultimap<Integer, ? extends ClassC>が、私がそれを正しくするかどうか、そして2つのマルチマップを一緒にマージできるかどうかはわかりません。誰かが私を助けることができますか?ご回答ありがとうございます、私はすべての助けに感謝します。

4

2 に答える 2

8

Multimap<Integer, ? extends ClassC>つまり、ジェネリック型は拡張する任意の型にすることができますClassCが、型は固定する必要があります。つまり、allClassAまたはallのいずれかになりますClassBMultimap<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 に答える