if (args.length == 3) {
displayMode = new DisplayMode(Integer.parseInt(args[0]),
Integer.parseInt(args[1]), Integer.parseInt(args[2]),
DisplayMode.REFRESH_RATE_UNKNOWN);
} else {
displayMode = new DisplayMode(800, 600, 16,
DisplayMode.REFRESH_RATE_UNKNOWN);
}
似乎DisplayMode()
接受4个参数,(3个整数和(其他))
但究竟是什么args[1]
?
我不明白为什么你必须将它解析为整数?
有人可以向我解释一下吗?
答案 0 :(得分:1)
如果这是java函数的main(String[] args)
那么
args[1]
是String
。您必须使用Integer.parseInt解析args[1]
以获取其整数值(如果它是integer
。
args[1]
是一个命令行参数,程序希望它存在。
这是更具体的第二个命令行参数。
答案 1 :(得分:0)
我已经阅读了您之前提出的问题(关于帧大小问题600x800 vs 800x600),因此使用该上下文,您需要在第一个和第二个参数上提供整数作为参数。
在java中,main方法有一个像
这样的签名public static void main(String[] args)
args包含作为命令行参数传递的所有参数
所以,如果你运行
java <yourclassname> 200 400 300
args [0]将包含“200”作为字符串,args [1]将包含“400”作为字符串等等
要转换这些数字并将其传递给您的类,您必须使用Integer.parseInt
答案 2 :(得分:0)
您可以在运行时将命令行参数传递给Java程序。如果使用[1, 2, 3]
调用,则以下程序将打印java ArgumentTest 1 2 3
。
import java.util.Arrays;
public class ArgumentTest {
public static void main(String[] args) {
System.out.println(Arrays.toString(args));
}
}
但是,由于参数都是String
,因此您需要解析它们以获取其他数据类型。