-2
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]什么?

我不明白为什么您必须将其解析为整数?

有人可以向我解释一下吗?

4

3 回答 3

1

如果这是main(String[] args)一个 java 函数,那么 args[1]它就是一个String. 你必须args[1]用 Integer.parseInt 解析以获取它的整数值,如果它是一个integer无论如何。

args[1]是一个命令行参数,程序期望它存在。这是第二个更具体的命令行参数。

于 2013-08-03T05:07:06.860 回答
0

我已经阅读了您之前的问题(关于帧大小问题 600x800 与 800x600),因此在这种情况下,您需要在第一个和第二个参数上提供整数作为参数。

在java中,main方法有一个签名,比如

public static void main(String[] args)

args 包含作为命令行参数传递的所有参数

所以如果你跑

java <yourclassname> 200 400 300

args[0] 将包含“200”作为字符串,args[1] 将包含“400”作为字符串,依此类推

要转换这些数字并将其传递给您的班级,您必须使用 Integer.parseInt

于 2013-08-03T05:09:19.797 回答
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));
    }
}

但是,由于参数都是Strings,所以需要解析它们以获取其他数据类型。

于 2013-08-03T05:11:52.420 回答