public class IfElse{
public static void main(String argv[]){
IfElse ie = new IfElse();
ie.go(argv);//为什么是调用的函数是argv??
}
public void go(String[] sa){
String s = sa[0];
if(s.equals("true")){
System.out.println("OK");
}else if(s.equals("false")){
System.out.println("Not OK");
}else{
System.out.println("Invalid command parameter");
}
}
}
我编译的时候 没错,但为什么出现Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at IfElse.go(IfElse.java:7)
at IfElse.main(IfElse.java:4)
public static void main(String argv[]){
IfElse ie = new IfElse();
ie.go(argv);//为什么是调用的函数是argv??
}
public void go(String[] sa){
String s = sa[0];
if(s.equals("true")){
System.out.println("OK");
}else if(s.equals("false")){
System.out.println("Not OK");
}else{
System.out.println("Invalid command parameter");
}
}
}
我编译的时候 没错,但为什么出现Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at IfElse.go(IfElse.java:7)
at IfElse.main(IfElse.java:4)
当程序运行到String s = sa[0]时就会报数组越界的错误;
你编译后可以这样运行:java IfElse true
或者按下面也能看到效果
……
argv = new String[] { "true" };
IfElse ie = new IfElse();
ie.go(argv);//为什么是调用的函数是argv??
……
public static void main(String argv[]) {
IfElse ie = new IfElse();
//mian函数的argv数组是存放从空值台传的参数的数组
//你可以java IfElse true看看
ie.go(argv);// 为什么是调用的函数是argv??
} public void go(String[] sa) {
// 在这里可以先做一下判断,如果数组里有元素再进行下一步判断,还要看书啊,呵呵
if (sa.length > 0) {
String s = sa[0];
if (s.equals("true")) {
System.out.println("OK");
} else if (s.equals("false")) {
System.out.println("Not OK");
} else {
System.out.println("Invalid command parameter");
}
}
}
}