的意思 ?在Map <string,?=“”>中

时间:2015-08-01 19:31:06

标签: java generics collections

createBuilderFactory中的方法javax.json需要Map<String, ?>

类型的参数

一般来说,我们的地图上有Map<String, String>(其他一些数据类型代替String

但我不明白?代表什么。并且为了传递类型Map<String, ?>的参数,我应该如何定义地图。

有人可以帮助我更好地理解这一点吗?

2 个答案:

答案 0 :(得分:3)

在Java泛型中,?代表通配符,代表任何对象。

如果您创建的方法需要Map<String, ?>,则表示您希望MapString键映射到任何可能的对象值:

public static void main(String[] args) {
    Map<String, Object> map1 = null;
    Map<String, String> map2 = null;

    test(map1);
    test(map2);
}

private static void test(Map<String, ?> settings) {}

答案 1 :(得分:0)

当我需要将Map<String, ?>传递给我接受Map<String, Object>的函数时,我遇到了困难。这削减了它:

Map<String, ?> mapQuestion = ...
mapObject = (Map<String, Object>)mapQuestion;