java:警告:[unchecked] 對作為普通類型 java.util.HashMap 的成員的put(K,V) 的調用未經檢查


java:警告:[unchecked] 對作為普通類型 java.util.HashMap 的成員的put(K,V) 的調用未經檢查

一、問題:學習HashMap時候,我做了這樣一個程序:

import java.util.HashMap;
public class testHashMap{

public static void main(String[] args)
{
    HashMap hm = new HashMap();
    hm.put("txtSearchProvince","北京"); 
    hmPara.put("txtSearchCity","西安");
    System.out.println("參數個數:" + hmPara.size());
    }catch(Exception e){
    System.out.print(e.getMessage());}
}
}//end class

編譯時:

c:\javac testHashMap.java 
提示如下:
testHashMap.java 使用了未經檢查或不安全的操作。
要了解詳細信息,請使用 -Xlint:unchecked 重新編譯。

c:\javac -Xlintunchecked testHashMap.java
提示是:
testHashMap.java:8: 警告: [unchecked] 對作為普通類型 java.util.HashMap 的成員的
put(K,V) 的調用未經檢查

二、修改辦法:
    HashMap hm = new HashMap();  
改為--HashMap<String,String> hm = new HashMap<String,String>();

---->這里面的String 又代表了什么呢?

三、查資料:

你的JDK版本是1.5,1.5是支持泛型的,但你的寫法不是用泛型的寫法,所以編譯的時候出了警告。 
將你的protected static ArrayList table=new ArrayList(); 改成 
protected static ArrayList<BigInteger> table=new ArrayList<BigInteger>(); 

這里說了一個[泛類型]的概念

 

四、引申:
HashMap<String,Integer> hm = new HashMap<String,Integer>(); 
    hm.put("txtSearchProvince",1);

這也是1.5的新特性,自動封裝成了Integer了 ,當然也可以自動把Integer變成int

這個可以通用:HashMap<Object, Object> hmPara = new HashMap<Object, Object>(); 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM