【问题标题】:JCommander validate list itemJCommander 验证列表项
【发布时间】:2018-10-14 18:17:47
【问题描述】:

我正在使用 JCommander v. 1.72,我的目标是在参数中获取(逗号分隔的)字符串列表并验证单个字符串。听起来很简单,对吧?

这是我的代码:

@Parameter(names = { "-sort", "-s" }, validateWith = ParameterValidatorHeader.class)
private List<String> sort = new ArrayList<String>();

我用这个命令运行程序:

-sort column1,column2

我希望 JCommander 拆分单个项目后调用验证器,即验证“column1”,验证“column2”。 但显然字符串“column1,column2”在拆分参数值之前被发送到验证器类。

我怎样才能实现对单个项目进行验证? (当然,我可以在使用 JCommander 解析它们之后使用纯 Java 进行验证...)

谢谢 埃里希

【问题讨论】:

    标签: validation listitem jcommander


    【解决方案1】:

    你不能,至少不使用 JCommander,文档对此很清楚

    4.2 Global parameter validation

    在使用 JCommander 解析您的参数后,您可能希望对这些参数执行额外的验证,例如确保两个互斥参数未同时指定。 由于此类验证涉及的所有潜在组合,JCommander 不提供任何基于注释的解决方案来执行此验证,因为这种方法必然会受到 Java 注释的本质的限制。 相反,您应该简单地在 Java 中对 JCommander 刚刚解析的所有参数执行此验证。

    【讨论】:

      猜你喜欢
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多