java commandline

作者:原创时间:2022-03-25
文档

java commandline是什么,让我们一起了解一下?

commandline是一个命令行,java程序的启动入口是main方法,可以通过main中的args参数来实现将外界变量传入main方法内部,因为args参数使用不够方便,还需要CommandLine实现一个数组。

我们知道,java程序的启动入口是main方法,我们其实已经可以通过main中的args参数来实现将外界变量传入main方法内部了,那为什么还需要CommandLine?

因为args参数使用不够方便,主要是因为其实现是一个数组,整个传递过程需要依赖顺序。编程者和程序调用需要记忆参数的顺序,才能正确传递参数。这个设计其实是不太好的,更好的做法是通过一个map或者说映射,这样取值就是通过key来取值,而不需要依赖顺序或者位置。

这个其实和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 comparable接口 java compiler java config java console java console.log 复活节的由来 java const java consumer接口 统一和康师傅是哪国的 怎么删掉word中的空白页 微信笔记在哪里编辑 椰子怎么挑 蟑螂最怕三种克星 毛尖属于什么茶 微信铃声怎么设置自己的歌 怎么确认微信还在不在电脑端 河南过年的风俗有哪些 丽水市是哪个省 微信怎么改密码 java containskey 山楂干泡水最佳搭配 java comet java combobox java color java collections java collect java clone() java clob java classloader java class.forname java class java cipher java charset java charsequence java charat java channel iPad怎么重启 java cglib 平板如何录屏 java ceiling