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 に答える