约束特定键 - HashMap 约定 - Java
简单的问题,但我无法找出答案,
是否可以限制我的应用程序的 HashMap 的键约定?由于我不希望未来的开发人员参与其中并尝试使用不同的密钥,因此我想强制执行有关他们必须使用哪种类型的密钥的规则。
举个例子:
只能有 4 对, 所有四个密钥只能是,
1. <North, Place>
2. <South, Place>
3. <East, Place>
4. <West, Place>
当开发人员使用我的方法时,如果他们使用除上述之外的不同密钥,他们应该会收到错误。
感谢您的任何帮助
到目前为止我能做什么:
我可能会在将键和值添加到其中时通过 if 语句进行检查 HashMap,可以说在 setLocationList(String key, Place place); 中。但我 如果有的话,想要比这更聪明的东西。谢谢。
Simple question, yet I couldn't figure out the answer,
Is it possible to constraint key convention for my application's HashMap? As I don't want future developer who works on it and try to use different key, I want to enforce a rule regarding what type of key they have to use.
As an example :
There can be only 4 pair,
And all four key can only be,
1. <North, Place>
2. <South, Place>
3. <East, Place>
4. <West, Place>
When developer use my methods they should get error if they use different key other than above mentioned.
Thank you for any kind of help
What I can do so far :
I might check by an if statement while adding key and value into
HashMap, lets say in setLocationList(String key, Place place);. But I
want something smarter than this if it is available. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当然,使用枚举作为您的路线,然后使用
EnumMap
作为您的地图类型。这保证了键必须是
Direction
类型。而且它是无懈可击的——因为类型键传递给 EnumMap 构造函数,即使您使用泛型盲代码,类型限制仍然会强制执行(在运行时)。Sure, use an enum for your directions, then use an
EnumMap
for your map type.This guarantees that the key must be of type
Direction
. And it's watertight---because of the type key passed to theEnumMap
constructor, even if you're using generics-blind code, the type restriction will still get enforced (at runtime).