Java 为什么整数i=Integer.valueOf(args[0])失败?args[0]是一个字符串
以下是问题描述: 在我为ocjp测试做准备的过程中,我遇到了一个问题,我不知道它出了什么问题Java 为什么整数i=Integer.valueOf(args[0])失败?args[0]是一个字符串,java,value-of,Java,Value Of,以下是问题描述: 在我为ocjp测试做准备的过程中,我遇到了一个问题,我不知道它出了什么问题 package test; class Test005{ public static void main(String[] args){ //Integer i = args[0];//cannot convert string to Integer Integer I = Integer.valueOf(args[0]); // Error ArrayOutOfB
package test;
class Test005{
public static void main(String[] args){
//Integer i = args[0];//cannot convert string to Integer
Integer I = Integer.valueOf(args[0]); // Error ArrayOutOfBoundsException :0
int j = 12;
System.out.println(j == i);
}
}
第一个
整数I=args[0]
是错误的,因为args[0]
是字符串,而I是int
;但是,第二个Ineteger I=Integer.valueOf(args[0])
执行得很顺利,但是JVM抛出了一个错误,我无法理解原因是什么?要运行它,必须在运行将分配给args[0]的程序时传递参数,然后程序才能正常工作。
如果您使用的是像eclipse这样的IDE,您可以通过arguments选项卡传递参数。
查看下面的链接以了解如何在eclipse IDE中传递参数:
JVM抛出
ArrayOutOfBoundsException
,因为您的args
为空,这意味着您在运行此程序时没有传递任何参数。尝试运行以下命令:javatest005 45
。顺便说一下,我认为您应该检查更多的情况,例如:args[0]不是数字格式(“ab”、“a1”),或者args为空。您没有发现的大问题是
Integer I = Integer.valueOf(args[0]);
只有在以下情况下才有效:
- args数组至少包含一个元素
- args[0]可以转换为整数对象
您没有提到您是如何测试它的,您是从另一个类/how调用该方法,还是从终端/how启动应用程序…阅读javadoc!如果您获得了代码中提到的ArrayOutOfBoundsException,则程序启动时不会使用参数What is
args.length
?我建议您阅读。运行此类时是否设置了参数?例如“javatest005 2”,我现在还不能发表评论,所以我给出了一个在你否决之前修改过的答案。谢谢,这个url真的帮助了我,我现在要学习eclipse中的命令行