Java中生成动态数组的问题

goldenguozhu 2012-10-07 10:08:58
为什么下面这段代码在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不允许从命令行参数中获取变量初始化数组吗,如果要实现这个功能需要怎样写代码,赐教,谢谢!
...全文
347 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pkjjun2012 2012-10-10
  • 打赏
  • 举报
回复
用命令行传参数的时候。先判断下。
halfsuccess 2012-10-09
  • 打赏
  • 举报
回复
thank you 各位 的最佳方式是结贴!哈哈!
goldenguozhu 2012-10-09
  • 打赏
  • 举报
回复
thank you 各位!
goldenguozhu 2012-10-07
  • 打赏
  • 举报
回复
为什么eclipse在
objArray = new Integer[(int)args[0]]; 这句出现错误提示(虽然不影响println的执行),
而在System.out.println(args[0]);没有给出错误提示,我想问的是在java中数组的运行时初始化可否像示例中这样。

最美的词 2012-10-07
  • 打赏
  • 举报
回复
在main方法里面,String[] args这个字符串数组是保存运行main函数时输入的参数的,LZ在程序中并没有定义args,所以objArray = new Integer[(int)args[0]];这条语句是有语法错误的
  • 打赏
  • 举报
回复
args有值吗
CHZiroy 2012-10-07
  • 打赏
  • 举报
回复
楼上正解,,因为你的args数组是局部变量,只在main方法里面访问得到,如果没传给arrayInit的话它是访问不到args数组的
nmyangym 2012-10-07
  • 打赏
  • 举报
回复
“为什么eclipse在
objArray = new Integer[(int)args[0]]; 这句出现错误提示(虽然不影响println的执行),”

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

楼主的意思,是不是想把命令行输入的数作为初始化类ArrayTest变量objArray的长度?
如果那样的话,需要做一些工作!给个代码参考一下:

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]);
}
}

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧