为什么我不能初始化Map <int,string =“”>?</int,>

时间:2013-09-10 22:07:30

标签: java generics map

我想存储一组int / String值,但int不一定是增量值,这意味着数据可以是:

<1, "first">, <3, "second">, <9, "third">. 

所以我正在尝试创建一个Dictionary<int, string>的c#等价物,但它只是无法编译,说“令牌上的语法错误”int“,此符号后面的维度”在线上:

private Map<int, String> courses;

任何人都可以告诉我为什么会这样吗?还有一个很好的替代方法,可以创建一个对象作为intString的占位符,然后使用数组来存储它们吗?

1 个答案:

答案 0 :(得分:22)

您不能将原始类型用作泛型类型参数。

使用

private Map<Integer, String> courses;

查看有关泛型的更多限制here

Dev的贡献:JLS specifies只能引用类型(和通配符)作为泛型类型参数。