Java HashMap 使用了未经检查或不安全的操作

2019-02-20 00:46:53来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

今天在做接口测试的时候使用了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)以上是支持泛型的,但我的写法不是用泛型的写法,所以编译的时候出了警告。 
重新编译执行:

 


原文链接:https://www.cnblogs.com/phpper/p/10402616.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:java学习笔记01(标识符,关键字)

下一篇:springboot常用注解记录