Java-使用方法参数定义HashMap类型

Wol*_*zen 0 java hashmap

我想要一个方法参数来定义HashMap将接受的类。类似于以下内容:

private HashMap hashMap = new HashMap();

public boolean createMap(Object obj) {
    return hashMap = new HashMap<String, obj.getClass()>() != null;
}
Run Code Online (Sandbox Code Playgroud)

Lou*_*man 5

您无法做您想做的事情:您不能“定义a HashMap将接受的类”,因为在运行时a HashMap将接受所有类。

另一方面,您可以做的是:

private Map<String, ?> map;

public <V> void createMap(Class<V> clazz) {
   map = Collections.checkedMap(new HashMap<String, V>(),
      String.class, clazz);
}
Run Code Online (Sandbox Code Playgroud)

...实际上将通过反射来强制实施您要创建的限制。在这种情况下,您的hashMap成员应具有type Map<String, Object>,尽管它将强制执行