-2

次のような 2 つのマップがあります。

Map<Long, MyObject> myMap1 = new HashMap<Long, MyObject>()

Map<Integer, Set<Long>> myMap2 = new HashMap<Long, Set<Long>>()

ジェネリックを渡したり、メソッドをオーバーロードしたりせずに、これら 2 種類のマップのみのマップをメソッドに渡すにはどうすればよいObjectですか?

public void method() {
    //method for maps
}
4

3 に答える 3

1

同じメソッドでそれらを使用したい場合は、異なる型が共通しているものだけを使用できます。

為に

Map<Long, MyObject> myMap1 = new HashMap<Long, MyObject>();
Map<Integer, Set<Long>> myMap2 = new HashMap<Integer, Set<Long>>();

それらに共通する最大値は次のとおりです。

void method(Map<? extends Number, ? extends Object> map) {
    Number key = ?? (you know it is a Number but that's not helping much)
    Object object = map.get(key);
    object.IDonTKnowWhatTypeYouAre();
}

メソッド内で使用できる型について基本的に何も知らないため、これはおそらく役に立ちません。

于 2013-08-09T18:10:49.177 に答える