如果Statement依赖于传递的命令行控件?

时间:2016-04-25 15:59:00

标签: java arrays spring arguments main

我的spring-boot应用程序可以从command line运行,arguments作为参数传递。

我想设置我的main method,以便在用户传递“a”作为参数时:运行任务A.如果他们传递“b”作为参数,则运行任务B.

我目前正在使用以下方式实现此目的:

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

有更好的方法吗?上述实现是否正确?

Full Runner课程:

@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
        }

    }

}

1 个答案:

答案 0 :(得分:4)

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

这更有可能是你想要的:

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