问题
I want to store a set of int
/String
values, but the int
s are not necessarily incremental, meaning the data can be:
<1, "first">, <3, "second">, <9, "third">.
So I'm trying to create the c# equivalent of a Dictionary<int, string>
but it just fails to compile, saying "Syntax error on token "int", Dimensions expected after this token" on the line:
private Map<int, String> courses;
Can anyone please tell me why this is? And a good alternative to creating an object as a placeholder for the int
and String
, then using an array to store them?
回答1:
You cannot use primitive types as generic type arguments.
Use
private Map<Integer, String> courses;
See more restrictions on Generics here.
Dev's contribution: the JLS specifies that only reference types (and wildcards) can be used as generic type arguments.
来源:https://stackoverflow.com/questions/18729550/why-cant-i-initialize-a-mapint-string