日期:2014-05-20  浏览次数:20694 次

菜鸟求教啥叫未经检查或不安全的操作?

这是书上的一段代码,但是编译的时候提示:使用了未经检查或不安全的操作。
然后-Xlint:unchecked重新编译,又提示:警告:[unchecked]对作为普通类型java.until.HashMap的成员put(K,U)的调用未经检查。
这个是什么意思啊?我把12345改成new String("12345")也不行

本来打这段代码是想问一下方法和函数的区别,我知道C++里都叫函数Java里都叫方法,但是我记得以前学VB6.0的时候方法和函数好像是有区别的,不过都忘光了,现在也想不出来区别在哪了,按照我现在的想法,函数应该带括号接受参数形式应该是.XXX(YYY)参数可选 而方法不应该带括号就.XXX
本来想试验一下"Iterator iter=m.keySet().iterator();"这一句中的m.keySet()能不能写成keySet(m)的 我觉得keySet()它如果是函数就应该有重载可以写成keySet(m)这种形式 如果是方法它就不应该带括号 个人想法

------解决方案--------------------
[code=Java][/code]
import java.util.HashMap; 
import java.util.Iterator; 
public class Hello 

public static void main(String args[]) 

HashMap<String, String> m=new HashMap<String, String>(); 
m.put("张三","12345"); 
m.put("李四","23456"); 
m.put("王二","34567"); 
Iterator iter=m.keySet().iterator(); 
while(iter.hasNext()) 

String key=(String)iter.next(); 
System.out.println(key+" "+m.get(key)); 




貌似这样就行了。
你原来的用法是以前版本JDK的用法,你看看最新的用法吧,改进好多了呢。呵呵
------解决方案--------------------
忘了说了,你可能看的是THINKING IN JAVA 4TH 吧?
那里面好像用的是JDK 4的,所以跟现在最新版本的JDK还是有些不同的,不过差别也不大。
------解决方案--------------------
Iterator 也是一个泛型,2 楼的做法还是会报出警告的,既然使用了 JDK 1.5 就要充分挖掘它的特性。


Java code
import java.util.HashMap;
import java.util.Map;

public class Test {
    
    public static void main(String args[]) {
        Map<String, String> map = new HashMap<String, String>();
        map.put("张三", "12345");
        map.put("李四", "23456");
        map.put("王二", "34567");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " --> " + entry.getValue());
        }
    }
}

------解决方案--------------------
it不会做泛型警告
map什么的类会有泛型警告