java代码在cmd中可以运行,但是在eclipse中运行出问题?代码如下:

interface Fruit{
public void eat();
}
class Apple implements Fruit{
public void eat(){
System.out.println("吃苹果....");
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("吃橘子....");
}
}
class Factory{
public static Fruit getFruit(String className){
Fruit f = null;
if("apple".equals(className)){
f = new Apple();
}
if("orange".equals(className)){
f = new Orange();
}return f;
}
}
public class InterDemo {
public static void main(String args[]){
Fruit f = Factory.getFruit(args[0]);
if(f!=null){
f.eat();
}
}
}

数组越界了,因为在cmd运行的时候你有写入参数,参数就是保存在String args[]这个数组中,当你用eclipse运行时,少了参数的写入,所以String args[]数组为空,在Fruit f=Facroty.getFruit(args[0]);时就出错了
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-28
运行的时候加参数
右键工程--Run As--Run Confi...--在Arguments的--Program Argument下面加参数再运行
比如加apple点击run会出现吃苹果本回答被提问者和网友采纳
第2个回答  2012-09-28
数组越界异常
第3个回答  2012-09-28
设置一下 运行参数
相似回答