開心生活站

位置:首頁 > IT科技 > 

java,commandline

IT科技3.24W

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java commandline是什麼,讓我們一起了解一下?

commandline是一個命令行,java程序的啓動入口是main方法,可以通過main中的args參數來實現將外界變量傳入main方法內部,因爲args參數使用不夠方便,還需要CommandLine實現一個數組。

我們知道,java程序的啓動入口是main方法,我們其實已經可以通過main中的args參數來實現將外界變量傳入main方法內部了,那爲什麼還需要CommandLine?

因爲args參數使用不夠方便,主要是因爲其實現是一個數組,整個傳遞過程需要依賴順序。編程者和程序調用需要記憶參數的順序,才能正確傳遞參數。這個設計其實是不太好的,更好的做法是通過一個map或者說映射,這樣取值就是通過key來取值,而不需要依賴順序或者位置。

java commandline

這個其實和spring的jdbcTemplate設計思路一樣。起初就只有jdbcTemplate,傳參數通過佔位符來的,依賴順序。後來纔在jdbcTemplate的基礎上做了一層封裝,也就是NamedParameterJdbcTemplate,是通過映射來傳參的。

所以CommandLine其實就是幫我們完成了映射的構建,將原本的數組參數轉換成了一個映射參數。

實戰操作:

public class Main {    public static void main(String args[]) {        // 構建參數        Options options = new Options()                .addOption("name",  true,"map-param")// 鍵值對參數,必須成對                .addOption("has", "bool-param");// bool型參數        // 解析        try {            CommandLine line = new DefaultParser().parse(options, args);             // 取值            System.out.println(line.hasOption("name"));            System.out.println(line.getOptionValue("name"));            System.out.println(line.hasOption("has"));        } catch (ParseException e) {            e.printStackTrace();        }    }}

標籤:java