-4

我是 Java 新手,并在集合上尝试以下代码。

我在 Eclipse 上收到了我在下面的代码中注释为 WARNING: 的警告。

import java.util.*;

public class A {

    public static void main(String[] args) {
        LinkedHashMap map = new LinkedHashMap();

        // add some values in the map
        map.put("One", "1");
        // WARNING:       
        //      - Type safety: The method put(Object, Object) belongs to the raw type HashMap. References to generic type HashMap<K,V> should be parameterized
        //      - The method put(String, String) is undefined for the type LinkedHashMap

        map.put("Two", "2");
        System.out.println("Map:" + map);

        // get key "Three"
        System.out.println("" + map.get("Two"));  // WARNING:  he method get(String) is undefined for the type LinkedHashMap

        // get key "Five"
        System.out.println("" + map.get("Five"));
    }
}

这是来自网站的代码示例,据说是一个简单的示例。

我怎么会出错?我该如何修复它们?

我是 Java 新手。请和我一起承担。

4

2 回答 2

3

通过使用泛型正确声明您的地图,一次修复所有警告。如果您使用的是 Java >=7:

Map<String, String> map = new LinkedHashMap<>();

否则:

Map<String, String> map = new LinkedHashMap<String, String>();
于 2013-11-12T21:45:02.623 回答
0

首先你应该使用。最好总是使用接口

Map map = new LinkedHashMap();

类型安全 简单来说,我可以解释为如果你有一篮水果,你想把花放在那里吗?所以你应该声明为

Map<String,String> map = new LinkedHashMap<String,String>();这表示我的地图键是字符串类型,如果是字符串类型,则值

于 2013-11-12T21:47:39.070 回答