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


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

  • 相关阅读:
    CF809E Surprise me!
    2019-4-12-WPF-绑定的默认模式
    2019-4-12-WPF-绑定的默认模式
    2019-2-28-C#-16-进制字符串转-int-
    2019-2-28-C#-16-进制字符串转-int-
    2019-10-23-WPF-使用-SharpDx-异步渲染
    2019-10-23-WPF-使用-SharpDx-异步渲染
    2019-8-31-ASP.NET-Core-开启后台任务
    2019-8-31-ASP.NET-Core-开启后台任务
    2019-8-24-win10-uwp-读取文本GBK错误
  • 原文地址:https://www.cnblogs.com/phpper/p/10402616.html
Copyright © 2020-2023  润新知