通过方法传递数组(java命令行参数)

时间:2015-04-22 00:28:07

标签: java command-line-arguments

我想知道如何检查方法中的args.length。

例如:

public static void commandLineCheck (int first, int second){
    if (args.length==0){
        //do something with first and second
    }
}

public static void main(String[] args) {
    int first = Integer.parseInt(args[0]);
    int second = Integer.parseInt(args[1]);
    commandLineCheck(first, second);
}

当我这样做时,我收到“找不到符号:args”错误。现在,我想我也需要通过该方法传递args []。我试过这个,但它给了我一个“”错误。是否有适合初学者的解决方案?

编辑:非常感谢你们的快速反应!它奏效了!

2 个答案:

答案 0 :(得分:0)

像这样更改你的代码(你需要将数组的参数传递给你的检查方法)

public static void commandLineCheck (int first, int second, String[] args){
    if (args.length==0){
        //do something with first and second
    }
}

public static void main(String[] args) {
    int first = Integer.parseInt(args[0]);
    int second = Integer.parseInt(args[1]);
    commandLineCheck(first, second, args);
}

它会起作用。但是,以下测试(args.length==0)没有多大意义,因为您已经假定args.length大于或等于2,方法是在main方法中从中提取两个值。因此,当您使用commandLineCheck方法时,此测试将始终为false。

答案 1 :(得分:0)

您需要将String [] args传递给commandLineCheck方法。这与您为main方法声明数组的方式相同。

public static void commandLineCheck (String[] args){
    if (args.length==0){
        //do something with first and second
    }
}

此外,您可能希望稍微更改主方法和commandLineCheck方法。

public static void commandLineCheck(String [] args) {
    /* make sure there are arguments, check that length >= 2*/
    if (args.length >= 2){
        //do something with first and second
        int first = Integer.parseInt(args[0]);
        int second = Integer.parseInt(args[1]);
    }
}

public static void main(String[] args) {
    commandLineCheck(args);
}