If 语句取决于传递的命令行参数是啥? [复制]
Posted
技术标签:
【中文标题】If 语句取决于传递的命令行参数是啥? [复制]【英文标题】:If Statement dependent on what command line arugment is passed? [duplicate]If 语句取决于传递的命令行参数是什么? [复制] 【发布时间】:2016-08-19 03:18:07 【问题描述】:我的spring-boot
应用程序可以从command line
运行,arguments
作为参数传递。
我想设置我的main method
,这样如果用户将“a”作为参数传递:任务 A 就会运行。如果他们将“b”作为参数传递,则运行任务 B。
我目前正在使用:
if(args.toString().contains("a"))
//run task A
有没有更好的方法来做到这一点/上面的实现是否正确?
完整的 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
【问题讨论】:
我会检查 ***.com/questions/367706/… 以获得更好的方法来解析传入的参数。因为你这样做的方式会有很多误报。例如。如果用户将“篮子”作为参数传递怎么办... 看到这个Java Command line arguments issue。这是重复的。 【参考方案1】:args.toString
不是你想要的,它会返回一个数组的 toString,类似于:[Ljava.lang.String;@15db9742
这更有可能是您想要的:
for(String arg : args)
if(arg.equals("a")) // or .contains
// run task A
【讨论】:
请注意,使用增强版您不会跳过 any 参数。我也不清楚你为什么要费心跳过第一个。 我很困惑,我认为是 c++,第一个参数是完整的命令以上是关于If 语句取决于传递的命令行参数是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章