首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java7中使用集合文字?

如何在Java7中使用集合文字?
EN

Stack Overflow用户
提问于 2012-05-23 00:00:05
回答 2查看 18.1K关注 0票数 23

我试过下面这行:

代码语言:javascript
复制
Map<Character, Color> map={new Character('r'):Color.red,new Character('b'):Color.black};

但NetBeans7拒绝了这一请求,错误消息为'{' expected, ';' expected

我已经将源代码/二进制格式设置为'JDK 7‘,平台设置为'JDK 1.7',还有什么需要我做的吗?

EN

回答 2

Stack Overflow用户

发布于 2012-05-23 00:03:57

您需要定义一个具体的map实现,可以选择与双花括号初始化相结合:

代码语言:javascript
复制
Map<Character, Color> map = new HashMap<Character, Color>() {{ 
  put(new Character('r'), Color.red);
  put(new Character('b'), Color.black );
}};
票数 11
EN

Stack Overflow用户

发布于 2012-05-23 00:29:58

在托马斯的回答上稍微扩展一下...Map是一个接口,必须通过相关的具体实现之一(HashMap、TreeMap或LinkedHashMap)进行实例化。这仍然是一个很好的实践;但是,将引用变量声明为接口实现而不是具体的具体变量,因为它提供了未来的灵活性。

不过,关于代码片段,我认为您仍然需要在声明的赋值端定义键-值对。所以,我会改变:

代码语言:javascript
复制
Map<Character, Color> map = new HashMap<>() {{ 

代码语言:javascript
复制
Map<Character, Color> map = new HashMap<Character, Color>() {{ 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10705705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档