简单的问题,但我想不出答案,
是否可以为我的应用程序的 HashMap 约束键约定?由于我不希望 future 的开发人员使用它并尝试使用不同的 key ,因此我想强制执行关于他们必须使用哪种类型的 key 的规则。
举个例子:
只能有4对, 而所有四个键只能是,
1. <North, Place>
2. <South, Place>
3. <East, Place>
4. <West, Place>
当开发人员使用我的方法时,如果他们使用上述以外的其他 key ,他们应该会出错。
谢谢你的帮助
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.
最佳答案
当然,使用枚举作为您的方向,然后使用 EnumMap
作为您的 map 类型。
public enum Direction {
NORTH, EAST, SOUTH, WEST;
}
Map<Direction, Place> map = new EnumMap<Direction, Place>(Direction.class);
这保证了键必须是Direction
类型。而且它是无懈可击的——由于传递给 EnumMap
构造函数的类型键,即使您使用的是泛型盲代码,类型限制仍会(在运行时)强制执行。
关于java - 约束特定键 - HashMap 的约定 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7410257/