日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java登录界面命令_Java命令行界面(第5部分):JewelCli

發布時間:2023/12/3 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java登录界面命令_Java命令行界面(第5部分):JewelCli 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java登錄界面命令

細算在Java命令行處理與Apache的百科全書CLI , args4j , jbock和命令行中先前的文章,我把注意力轉向在這個崗位使用JewelCli完成的命令行參數相似的處理Java中。

幾個Java命令行處理庫使用批注來定義命令行選項。 到目前為止,本系列文章中涵蓋的四個庫中的三個都使用注釋,JewelCli也是如此。 JewelCli在到目前為止我所介紹的庫中是獨一無二的,因為它的注釋應用在Java接口上,而不是在Java類或類的構造上。 下一個代碼清單演示了如何在Java接口上使用注釋來實現JewelCli命令行解析的“定義”階段。

JewelCli“定義”通過帶注釋的接口實現

package examples.dustin.commandline.jewelcli;import com.lexicalscope.jewel.cli.Option;/*** Interface defining JewelCli-friendly command-line parameters.*/ public interface MainCommandLine {@Option(shortName="f", description="Name and path of file to be used.")String getFile();@Option(shortName="v", description="Indicate whether status should be reported verbosely.")boolean isVerbose();@Option(helpRequest=true, description="Usage details on command-line arguments.")boolean getHelp(); }

上面顯示的簡單界面包含許多與命令行處理有關的內容。 這些選項具有使用shortName注釋類型元素顯式指定的單連字符簡稱,并通過“ get”方法的名稱隱式指定(盡管longName注釋類型元素可用于顯式指定的長名稱[double hyphens]版本)開關)。 命令行選項還具有通過Option注釋提供的各自描述。 helpRequest=true的使用描述了應使用哪種命令行開關來顯示用法/幫助信息。 在這種情況下,因為注釋方法名為getHelp() ,所以--help開關將顯示用法信息。 如果我將方法命名為getDustin()并使用@Option(helpRequest=true)對其進行注釋,則該開關將是--dustin以顯示用法。

在除了與方法名稱匹配的開關的長名稱之外的情況下,JewelCli利用約定優于配置。 如上所示,在注釋了命令行選項的相應接口方法定義后,詳細程度開關(返回boolean )是可選的。 需要文件名切換,因為其對應的getFile()方法返回String 。 如果我想使文件名可選,則可以在getFile()方法的@Option注釋中提供一個defaultValue ,例如@Option(defaultValue="") 。

通過使用JewelCli @Option注釋進行注釋的接口(在本例中為MainCommandLine ),我們可以使用JewelCli @Option “解析”階段。 在Main的下一個代碼清單中,這與“詢問”階段一起得到了證明。

JewelCli的“解析”和“審訊”階段

package examples.dustin.commandline.jewelcli;import static java.lang.System.out;import com.lexicalscope.jewel.cli.CliFactory;/*** Demonstrates use of JewelCli for parsing command-line* parameters in Java.*/ public class Main {public static void main(final String[] arguments){final MainCommandLine main = CliFactory.parseArguments(MainCommandLine.class, arguments);out.println("You specified file '" + main.getFile() + "' with verbosity setting of '" + main.isVerbose() + "'.");} }

剛剛顯示的Main類的其中一行“解析” [對CliFactory.parseArguments(Class<T>, String...)的調用],而另一行“詢問” [訪問對JewelCli-帶注釋的界面,如先前所示]。

以下三個屏幕快照演示了實際中基于JewelCli的代碼示例。 第一個圖像演示了使用--help查看用法(注意,輸出中包含堆棧跟蹤)。 第二張圖片顯示了長( - )和短( -- )選項開關的不同組合。 第三個圖像顯示了當未提供必需的命令行參數(在這種情況下為--file或-f )時顯示的輸出消息和關聯的堆棧跟蹤。

GitHub上提供了本文中用于演示JewelCli應用的這兩個類的代碼清單。

選擇庫以幫助進行Java中的命令行解析時,JewelCli的一些其他特征也應考慮在內。

  • JewelCli是開源的,并根據Apache軟件許可版本2獲得許可 。
  • 當前的JewelCli ( 0.8.9 )JAR( jewelcli-0.8.9.jar / 2014年2月)大小約為542 KB。
  • 無需其他庫即可使用JewelCli。
  • 如上面的示例所示,JewelCli在Java接口上使用“定義”階段的注釋。 任何以類似方式注釋類“ get”方法的嘗試都會在運行時產生諸如“ IllegalArgumentException:…不是接口”之類的消息。
    • 但是,JewelCli確實支持一種替代的基于類/實例的方法 ,在該方法中,對類上的“設置”方法進行了注釋,而不是對接口上的“獲取”方法進行了注釋。
  • JewelCli允許接口從超級接口繼承,并且在繼承接口中將支持父接口中定義的@Option 。
  • 界面中注釋的方法的返回數據類型提供了命令行選項值的類型強制。 枚舉甚至可以用作返回數據類型,以將可能的命令行選項類型縮小到一組有限的可能性。

JewelCli易于使用,并且由于其在配置方法上的約定,因此只需很少的代碼即可定義,解析和詢問命令行參數。 我發現為定義可解析的命令行選項的接口添加注釋的推薦方法在美學上也很令人滿意。

其他資源

  • JewelCli
  • GitHub上的JewelCli
  • Maven上的JewelCli
  • JewelCli使用介紹
  • JewelCli文檔/博客
  • JewelCLI:Java的簡單CLI界面
  • JewelCli:替代方案,評論,博客文章和用戶

翻譯自: https://www.javacodegeeks.com/2017/07/java-command-line-interfaces-part-5-jewelcli.html

java登錄界面命令

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java登录界面命令_Java命令行界面(第5部分):JewelCli的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。