小弟为初学者,遇到一问题,望各位大虾赐教.在此谢过..
import java.io.*;
import java.awt.*;
import java.util.*;
import java.lang.*;
class daydiff
{
public static void main(String args[])
{
args[0]="11111";
}
}
编译时系统报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at daydiff.main(daydiff.java:9)
请问,我这样赋值方法有什么问题,应该如何正确调用main的参数呢?
import java.io.*;
import java.awt.*;
import java.util.*;
import java.lang.*;
class daydiff
{
public static void main(String args[])
{
args[0]="11111";
}
}
编译时系统报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at daydiff.main(daydiff.java:9)
请问,我这样赋值方法有什么问题,应该如何正确调用main的参数呢?
举个例子来说 javac -version
"-version"才是参数。你只需要在程序里判断有没有参数,参数有几个,每一个参数是什么就行了。
if(args.length != 0)
在执行时候写java daydiff XXXXXXXXX
不知道你这个程序在运行的时候带上参数会如何?
如果你不带参数的话,args[0] 就没有分配空间呀.
import java.awt.*;
import java.util.*;
import java.lang.*;
class daydiff
{
public static void main(String args[])
{
args[0]="11111";
}
}因为执行时没有设置运行参数,所以args=null,调用args[0]是就会有越界错误
而且只有你传入的参数会成为数组的成员,类名以及java不会存入数组的。
JF
args[0] = "1111";如果输入参数不为空的话,给输入参数第一个赋值“1111”.
java daydiff adfnasdf
结果 1111 哈哈..覆盖了..!
必须是String[]直接赋制值是不行的,要这样:
java Name **
你初始化的数组长度为0,确副给它一个值,你说这不矛盾吗?
可以这样;
args[]="11111";
还有最好这样:
public class daydiff
if (args[0] != null) {
....
}