コマンド ライン解析用の Apache Commons CLI ライブラリに足を踏み入れています。文字列値のオプションでは問題なく動作しますが、ブール値のコマンド ライン フラグをきれいに処理する方法がわかりません。私はこれを試しました:
CommandLineParser parser = new GnuParser();
Options options = new Options();
options.addOption(new Option("parseOnly", "Only parse"));
CommandLine cl = parser.parse( options, args );
if( cl.hasOption( "parseOnly" ) )
PARSE_ONLY = (Boolean) cl.getParsedOptionValue( "parseOnly" );
しかし、これNullPointerException
はファイル行の a で失敗します。なぜなら、cl.getParsedOptionValue()
andnull
は にキャストできないからBoolean
です。
cl.hasOption( "parseOnly" )
trueまたはfalseを返しますが、それが何を意味するのかはドキュメントからは明らかではありません-ユーザーが指定したことを意味し、trueまたはfalseのいずれかである可能性がありますか? それともフラグが立っているということですか?フラグをデフォルトの true にして、ユーザーがそれをオフにできるようにしたい場合 (他の getopt パーサーの --noParseOnly のように)?
RTFM を含め、人々からの提案を歓迎します。ありがとう。