我正在尝试更改通用地图

private final Map<String, Object> dataObject;




private final Map<String, ?> dataObject;


吸气剂从

public Map<String, Object> getDataObject() {
  return dataObject;
}




public Map<String, ?> getDataObject() {
  return dataObject;
}


但二传手:

public void addDataObject(final String key, final Object value) {
  dataObject.put(key, value);
}


无法毫无错误地配置任何想法?还是我尝试使用“”错误?通用的

最佳答案

参数化您的类,而不使用通配符:

class Container<T> {
  private final Map<String, T> dataObject;

  public Map<String, T> getDataObject() {
    return dataObject;
  }

  public void addDataObject(final String key, final T value) {
    dataObject.put(key, value);
  }

}

10-08 19:04