java - 约束特定键 - HashMap 的约定 - Java

标签 java collections hashmap

简单的问题,但我想不出答案,

是否可以为我的应用程序的 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/

相关文章:

java - 在 JMeter 中为不同的线程使用不同的变量

java - spring 任意消息 TCP 套接字

C# 的 LINQ 用于在 ruby​​ 中等效的集合操作

java - 迭代循环并根据条件检查设置新值 - java

java - 无法获取 json : Infinite recursion

java - 定义 Freemarker EOL 格式(\n 而不是\r\n)

java - 从单个方法中创建和使用 ArrayList?

java - android中的聊天应用程序,以便发送者和接收者消息应该在不同的一边

java - 使用流java8根据条件修改HashMap

java - 如何更改 HashMap 中键的值?