-
Notifications
You must be signed in to change notification settings - Fork 0
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 类要做的事就是收集参数列表,并且把它们存入HashTable里。CommandLine类还提供getArgument(String keyword)
方法用于查询参数列表。
parseArgs()
方法用于解析并存储参数列表。
parseArgs()又调用parseSwitchs(args, i)
和parseKeywords(args, i)
解析单身狗参数和非单身狗参数,最后存入Hashtable<String, String> keywords中。
基本上就是这样,具体如何解析就看代码描述。