对象的 ArrayList 作为 EnumMap 的值
我已经尝试这样做有一段时间了,这让我发疯。我有一个 EnumMap,其中有一些枚举作为键,并以自定义类的数组列表作为值。所以它看起来像这样:
private EnumMap<myEnum,List<myObj>> map =
new EnumMap<myEnum,List<myObj>>(myEnum.class);
这一直给我一个错误。不确定到底发生了什么。
编辑: 是的,myEnum 是一个枚举类。 我的错误,我应该提到错误是什么以及错误发生在哪里。当我执行以下操作时会发生错误:
hand.put(myEnum.someEnum, new ArrayList());
我得到的错误是: - 令牌语法错误,预期为 TypeArgument1 反而 - 标记“(”上的语法错误,<预期 - 令牌“new”上的语法错误,删除此令牌
I've been trying to do this for a little while and it's driving me crazy. I have an EnumMap where I have some enumeration as a key and an arraylist of a self-defined class as the value. So it looks something like this:
private EnumMap<myEnum,List<myObj>> map =
new EnumMap<myEnum,List<myObj>>(myEnum.class);
This keeps giving me an error. Not sure exactly what's happening.
EDIT:
Yes, myEnum is an enum class.
My mistake, I should have mentioned what error is and where it happens. The error occurs when I do the following:
hand.put(myEnum.someEnum, new ArrayList());
The error I get is:
- Syntax error on tokens, TypeArgument1 expected
instead
- Syntax error on token "(", < expected
- Syntax error on token "new", delete this token
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
对于:
您可以像这样使用
EnumMap
:希望这可以澄清用法。
For:
You would use the
EnumMap
like this:Hopefully that clears up the usage.
另外,我假设 myEnum 指的是类名,而不是类 MyEnum 的实例,对于 myObj 也是如此。我们通常以大写字母开头类名,所以这有点令人困惑。
您需要使用 () 参数化 ArrayList;
Also, I assume myEnum refers to the class name and not an instance of class MyEnum and same for myObj. We usually start class names with uppercase letters, so this is a little bit confusing.
You need to parameterize the ArrayList with ();
应该是这样的:
should be like this:
melv 的代码似乎有效:
melv's code seems to work: