【发布时间】:2011-04-24 23:57:22
【问题描述】:
如何将字符串映射到静态定义的整数数组?我试过了
private static Map<String, int[]> map = new HashMap<String, int[]>();
static {
map.put("foo", {5, 1, 3, 2});
map.put("bar", {2, 7, 8});
}
这告诉我 {5, 1, 3, 2} 是非法的。
【问题讨论】:
如何将字符串映射到静态定义的整数数组?我试过了
private static Map<String, int[]> map = new HashMap<String, int[]>();
static {
map.put("foo", {5, 1, 3, 2});
map.put("bar", {2, 7, 8});
}
这告诉我 {5, 1, 3, 2} 是非法的。
【问题讨论】:
你需要在初始化内容之前调用数组的构造函数。
map.put("foo", new int[]{5, 1, 3, 2});
【讨论】:
试试
private static Map<String, int[]> map = new HashMap<String, int[]>();
static {
map.put("foo", new int[]{5, 1, 3, 2});
map.put("bar", new int[]{2, 7, 8});
}
【讨论】:
如果地图永远不会改变,你可以使用Guava lib:
private static ImmutableMap<String, int[]> immutaleMap =
ImmutableMap.of("foo", new int[]{5, 1, 3, 2},
"bar", new int[]{2, 7, 8});
【讨论】: