6

我有树类,例如ClassA, ClassB, ClassCClassAClassB扩展ClassC。我有两个Multimaps-Multimap<Integer, ClassA>而且Multimap<Integer, ClassB>我想将这两个多图合并为一个。我试图找到一些解决方案但没有成功。我试过了。喜欢Multimap<Integer, ? extends ClassC>,但我不知道我是否做对了,是否可以将两个多图合并在一起。有人能帮我吗?感谢您的回复,我感谢您的每一个帮助。

4

2 回答 2

8

Multimap<Integer, ? extends ClassC>这意味着泛型类型可以是任何扩展ClassC的类型,但类型必须是固定的。即,它可以是 allClassA或 all ClassB。所以你应该Multimap<Integer, ClassC>改用。它将接受类型ClassAClassB.

于 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 回答