这是书上的一段代码,但是编译的时候提示:使用了未经检查或不安全的操作。
然后-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什么的类会有泛型警告