Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java If语句依赖于传递的命令行分段?_Java_Arrays_Spring_Arguments_Main - Fatal编程技术网

Java If语句依赖于传递的命令行分段?

Java If语句依赖于传递的命令行分段?,java,arrays,spring,arguments,main,Java,Arrays,Spring,Arguments,Main,我的spring boot应用程序可以从命令行运行,并将参数作为参数传递 我想设置我的main方法,这样,如果用户将“a”作为参数传递,则会运行任务a。如果它们将“b”作为参数传递,则运行任务b 我目前正在使用以下方法实现此功能: if(args.toString().contains("a")){ //run task A } 是否有更好的方法来实现这一点/上述实现是否正确 完整跑步者等级: @Component public class MyRunner implements Comman

我的
spring boot
应用程序可以从
命令行运行,并将
参数作为参数传递

我想设置我的
main方法
,这样,如果用户将“a”作为参数传递,则会运行任务a。如果它们将“b”作为参数传递,则运行任务b

我目前正在使用以下方法实现此功能:

if(args.toString().contains("a")){
//run task A
}
是否有更好的方法来实现这一点/上述实现是否正确

完整跑步者等级:

@Component
public class MyRunner implements CommandLineRunner {

    //other code

    @Override
    @Transactional
    public void run(String... args) throws Exception {

        if(args.toString().contains("a")){
            //run task A
        }

        if(args.toString().contains("b")){
            //run task B
        }

    }

}

args.toString
不是您想要的,它将返回数组的toString,类似于:
[Ljava.lang.String;@15db9742

这更有可能是您想要的:

for(String arg : args) {
    if(arg.equals("a")) { // or .contains
        // run task A
    }
}

args.toString
不是您想要的,它将返回数组的toString,类似于:
[Ljava.lang.String;@15db9742

这更有可能是您想要的:

for(String arg : args) {
    if(arg.equals("a")) { // or .contains
        // run task A
    }
}

我会寻找更好的方法来解析传入的参数。因为你这样做会有很多误报。例如,如果用户通过“basket”怎么办作为一个参数…看这个。这是一个重复。我会检查更好的方法来解析传入的参数。因为你这样做会有很多误报。例如,如果用户通过“basket”怎么办作为一个论点……看这个。这是一个复制品。注意,因为你没有跳过任何参数,所以我也不清楚为什么你会跳过第一个。我觉得很困惑,我认为C++,第一个论点是完整的命令,用增强的方式来避免跳过任何参数。它也是叔叔。告诉我为什么你会不想跳过第一个。我觉得很困惑,我认为C++,第一个参数是完整的命令。