Skip to content

CommandLine类说明

做梦专业户 edited this page Jan 31, 2020 · 1 revision

这篇源码解析文档尽量做到废话少且通俗易懂,减少专业词汇的使用。

首先明确两个概念

概念:参数的形式

WatchMe 是一个命令行程序,WatchMe 接受的有效参数列表为

--help,-h,-r,-d [directory]

命令参数大概分为两类,单身狗参数非单身狗参数

-help,-h,-r这类单独存在的参数为单身狗参数

-d [directory]这类需要成对出现的参数叫非单身狗参数

概念二: 参数的存储形式

单身狗和非单身狗参数都存储在一个HashTable容器中,变成符合Java HashTable标准的[Key,Value]组合,

如在 --help存入HashTable时,它会以[Key,Value]形式存入HashTable,也就是[--help,true]

有如-r在HashTable中的表示的是[-r,true]

而非单身狗则不变,如-d /tmp/zzh在Hashtable里变成[-d,/tmp/zzh]

CommandLine 要做的事情

CommandLine 类要做的事就是收集参数列表,并且把它们存入HashTable里CommandLine类还提供getArgument(String keyword)方法用于查询参数列表。

parseArgs()方法用于解析并存储参数列表。

parseArgs()又调用parseSwitchs(args, i)parseKeywords(args, i)解析单身狗参数和非单身狗参数,最后存入Hashtable<String, String> keywords中。

基本上就是这样,具体如何解析就看代码描述。

源码描述

Clone this wiki locally