Tea*_*App 3 java collections hashmap
简单的问题,但我无法找到答案,
是否可以约束我的应用程序的HashMap的键约定?由于我不希望未来的开发人员使用它并尝试使用不同的密钥,因此我想强制规定他们必须使用哪种类型的密钥.
举个例子 :
可以只有4对,而且所有四个键都只能,
1. <North, Place>
2. <South, Place>
3. <East, Place>
4. <West, Place>
Run Code Online (Sandbox Code Playgroud)
当开发人员使用我的方法时,如果他们使用除上述之外的其他密钥,他们应该会收到错
谢谢你的帮助
到目前为止我能做些什么:
我可以在向HashMap添加键和值时通过if语句进行检查,比如在setLocationList(String key,Place place);中.但是如果可以的话,我想要比这更聪明的东西.谢谢.
当然,请使用枚举作为您的路线,然后使用EnumMap地图类型.
public enum Direction {
NORTH, EAST, SOUTH, WEST;
}
Map<Direction, Place> map = new EnumMap<Direction, Place>(Direction.class);
Run Code Online (Sandbox Code Playgroud)
这可以保证密钥必须是类型Direction.并且它是无懈可击的 - 因为传递给EnumMap构造函数的类型键,即使你使用泛型盲代码,类型限制仍然会被强制执行(在运行时).