2023-12-03
定制化代码 ----> 强制交互式的解决方案
```
public static void main(String[] args) {
new CommandLine(new Login()).execute(addArgs(Login.class, new String[]{"-u", "jxy"}));
}
/**
* 给命令添加上所有的交互参数
* @param clazz 需要添加参数的类
* @param args 原始参数
* @return 改变之后的参数
*/
public static String[] addArgs(Class clazz, String[] args) {
StringBuilder sb = new StringBuilder(String.join(",", args));
// 反射获取所有的交互选项
Field[] fields = clazz.getDeclaredFields();
for(Field field: fields){
if(field.isAnnotationPresent(Option.class)) { // 存在选项注解
Option option = field.getAnnotation(Option.class);
if (option.interactive()) {
if (sb.indexOf(option.names()[0]) <= 0) {
sb.append(",").append(option.names()[0]);
}
}
}
}
return sb.toString().split(",");
}
```
8
0
分享
操作
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
