写了一段程序,居然编译的时候报错,
说下面的语句缺少;
for(String word:args){
哈哈,是不是jdk 1.5.0_13还不支持泛型,增强for循环啊?代码如下import java.util.*;public class Freq2{
public static void main(String args[]){
Map<String,Integer> m = new TreeMap<String,Integer>();
for(String word:args){
m.put(word,m.get(word)+1);
System.out.println(m);
}
}
}
说下面的语句缺少;
for(String word:args){
哈哈,是不是jdk 1.5.0_13还不支持泛型,增强for循环啊?代码如下import java.util.*;public class Freq2{
public static void main(String args[]){
Map<String,Integer> m = new TreeMap<String,Integer>();
for(String word:args){
m.put(word,m.get(word)+1);
System.out.println(m);
}
}
}
你的<>有问题~是不是全角?
TreeMap<String, Integer> m = new TreeMap<String, Integer>(); for (String word : args) {
m.put(
word,
m.get(word) + 1); System.out.println(m);
}
//发错。。,你的源程序改成这样
Map<String, Integer> m = new TreeMap<String, Integer>(); for (String word : args) {
m.put(
word,
m.get(word) + 1); System.out.println(m);
}
这个时候m为空,所以出错
哈哈,比较原始的方法
java version "1.5.0_13"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05)
Java HotSpot(TM) Client VM (build 1.5.0_13-b05, mixed mode, sharing)看样子sun做得不好,不能两个jdk共存
m.get(word) 返回null
怎么能null+1呢
但是编译都没有过啊,我还没有运行过,你说的问题肯定是运行时错误阿我是把下面的代码改造成泛型的import java.util.*;public class Freq {
private static final Integer ONE = new Integer(1);
public static void main(String args[]){
Map m = new TreeMap();
for (int i=0;i<args.length;i++){
Integer freq = (Integer)m.get(args[i]);
m.put(args[i],(freq==null?ONE:new Integer(freq.intValue()+1)));
}
System.out.println(m);
}
}
还有,我看你的你看看你的path和JAVA_HOME~PATH上的是不是1.5的?
2 Eclipse 编译,确认你的 JDK和JRE的版本
执行:java -version
虽然你装了1.5的,你用的肯定是JDK1.4的.
然后你再在环境变量里面把JDK1.5的bin目录放在path路径最前面就OK了
哎,没法上传附件,不能给你截图勒。呵呵
javac -version看看..
由于/system32里也有一个java.exe,建议将java相关的路径放在PATH最前面。
javac -version看看
1. java -version 看看jdk版本是不是1.5
如果是的话,可以用javac来编译一下你的程序,是可以编译成功的
如果不是,你可以改一下环境配置,指向jdk1.52. Eclipse的配置肯定有问题。你看看Eclipse用的jdk版本是不是1.5。 可以在eclipse的设置中查到