Spring SimpleCommandLineArgsParser
- Author: HuiFer
源码阅读仓库: SourceHot-spring
类全路径: `org.springframework.core.env.SimpleCommandLineArgsParser
类作用: 将命令行参数解析成
org.springframework.core.env.CommandLineArgs完整代码如下.
class SimpleCommandLineArgsParser {/*** Parse the given {@code String} array based on the rules described {@linkplain* SimpleCommandLineArgsParser above}, returning a fully-populated* {@link CommandLineArgs} object.* @param args command line arguments, typically from a {@code main()} method*/public CommandLineArgs parse(String... args) {CommandLineArgs commandLineArgs = new CommandLineArgs();for (String arg : args) {if (arg.startsWith("--")) {String optionText = arg.substring(2, arg.length());String optionName;String optionValue = null;if (optionText.contains("=")) {optionName = optionText.substring(0, optionText.indexOf('='));optionValue = optionText.substring(optionText.indexOf('=') + 1, optionText.length());}else {optionName = optionText;}if (optionName.isEmpty() || (optionValue != null && optionValue.isEmpty())) {throw new IllegalArgumentException("Invalid argument syntax: " + arg);}commandLineArgs.addOptionArg(optionName, optionValue);}else {commandLineArgs.addNonOptionArg(arg);}}return commandLineArgs;}}
- 处理流程
- 循环命令行参数列表
- 去掉
--和=获取参数名称和参数值放入结果集合
