当前位置: 代码迷 >> J2SE >> Java中生成动态数组的有关问题
  详细解决方案

Java中生成动态数组的有关问题

热度:5332   发布时间:2013-02-25 00:00:00.0
Java中生成动态数组的问题
为什么下面这段代码在eclipse中报:args can not resolved to a variable
public class ArrayTest {
  private Object objArray[];
  private int i;
  void arrayInit(){
  objArray = new Integer[(int)args[0]];
  };
  public static void main(String[] args) {
System.out.println(args[0]);
}
}

Java不允许从命令行参数中获取变量初始化数组吗,如果要实现这个功能需要怎样写代码,赐教,谢谢!

------解决方案--------------------------------------------------------
在main方法里面,String[] args这个字符串数组是保存运行main函数时输入的参数的,LZ在程序中并没有定义args,所以objArray = new Integer[(int)args[0]];这条语句是有语法错误的
------解决方案--------------------------------------------------------
“为什么eclipse在
objArray = new Integer[(int)args[0]]; 这句出现错误提示(虽然不影响println的执行),”

在类ArrayTest 里,就没有定义args数组变量!

楼主的意思,是不是想把命令行输入的数作为初始化类ArrayTest变量objArray的长度?
如果那样的话,需要做一些工作!给个代码参考一下:
Java code
public class ArrayTest{        private Object objArray[];    private int i;    void arrayInit(String[] args)        //通过方法传入。    {        objArray = new Integer[Integer.parseInt(args[0])];     //用转换的整数,直接为数组定义长度。    }    public static void main(String[] args)     {        ArrayTest at=new ArrayTest();    //创建一个ArrayTest对象。        at.arrayInit(args);        //传入数组。        System.out.println(args[0]);    }}
------解决方案--------------------------------------------------------
楼上正解,,因为你的args数组是局部变量,只在main方法里面访问得到,如果没传给arrayInit的话它是访问不到args数组的
  相关解决方案