正确使用Map的方法

时间:2014-05-23 14:21:42

标签: java map struts2

每当我声明一个地图对象时,我总是在声明,getter和setter上得到以下警告。

Map is a raw type. References to generic type Map<K,V> should be parameterized  

我的声明是:

import java.util.Map;
private Map pricingInfo;
pricingInfo = getCurrentSession();

地图正在抓取我在之前的Struts2 Action中存储的当前会话信息 并将它们传递给通用Java对象。我用来存储它的代码包含在下面,为我正在做的事情提供更多的背景信息。

ServletActionContext.getRequest().getSession().putValue("pricing", this);

但是我得到了所有预期的值并且还没有遇到运行时错误。

所以问题是我应该只使用注释来消除这些警告,还是有一种'正确'的方法来实例化和使用这些变量?

2 个答案:

答案 0 :(得分:3)

指定键和值的类型:

   Map<String, String> aMethod(aType type);

答案 1 :(得分:2)

只要有可能,就应该指定集合将包含哪些值类型。这样做有两个好处:

  1. 首先,编译器可以检查您是否错误地将错误的值类型放入集合中。

  2. 第二个是您不必从Object转换为从集合中检索值/对象时的任何值类型。

  3. 如果是Map,您需要指定两种类型:Map<K,V>

    将K替换为Map中键的类型,将V替换为Map中保存的值类型。