代码生成器共享平台 笔记

强制交互式的解决方案

text
复制代码
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(","); }
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP