今天在做接口测试的时候使用了Java中的Map(java 所知胜少,因项目需要提供示例),不扯犊子了,我们直接看一个代码文件名:
Test.java:
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; class Test { public static void main(String[] args) { Map map = new HashMap(); //Map<String,String> map = new HashMap<String,String>(); //HashMap<String,String> map = new HashMap<String,String>(); map.put("code", "1001"); map.put("name", "mary"); map.put("gender", "female"); map.put("age", "22"); map.put("hobby", "旅游"); System.out.print(map.get("hobby")); for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } } }
编译执行:
javac -encoding utf-8 Test.java java Test
发现在编译javac时直接报错:
1 注: Test.java使用了未经检查或不安全的操作。 2 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
解决办法[开启上面注释的任一一行]:
Map map = new HashMap(); 改成:
HashMap<String,String> map = new HashMap<String,String>();
或者:
Map<String,String> map = new HashMap<String,String>();
啥情况?
查资料大致是这样解释滴:
JDK版本是1.5,1.5(我的jdk是1.8)以上是支持泛型的,但我的写法不是用泛型的写法,所以编译的时候出了警告。
重新编译执行: