Java 正确使用Map';s

Java 正确使用Map';s,java,map,struts2,Java,Map,Struts2,每当我声明一个map对象时,我总是在declaration、getter和setter上得到下面的警告 Map is a raw type. References to generic type Map<K,V> should be parameterized 映射正在抓取我在上一个Struts2操作中存储的当前会话信息 并将它们传递到通用Java对象中。下面包含了我用来存储它的代码,以便为我正在做的事情提供更多的上下文 ServletActionContext.getRequ

每当我声明一个map对象时,我总是在declaration、getter和setter上得到下面的警告

Map is a raw type. References to generic type Map<K,V> should be parameterized  
映射正在抓取我在上一个Struts2操作中存储的当前会话信息 并将它们传递到通用Java对象中。下面包含了我用来存储它的代码,以便为我正在做的事情提供更多的上下文

ServletActionContext.getRequest().getSession().putValue("pricing", this);
但是,我得到了所有预期值,还没有遇到运行时错误


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

指定键和值的类型:

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

指定键和值的类型:

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

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

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

  • 第二,当从集合中检索值/对象时,不必将对象强制转换为任何类型的值

  • 对于地图,您需要指定两种类型:
    Map


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

    只要有可能,就应该指定集合将保存的值的类型。这样做有两个好处:

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

  • 第二,当从集合中检索值/对象时,不必将对象强制转换为任何类型的值

  • 对于地图,您需要指定两种类型:
    Map


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

    阅读“泛型”的用法,所有内容都应该变得清晰。@GriffeyDog感谢您通过链接阅读其中的一些内容,并澄清了我的一些问题。阅读“泛型”的用法所有的一切都应该变得清晰起来。@GriffeyDog感谢您通过链接阅读了其中的一些内容,并澄清了我的一些问题