我正在将现有的应用程序转换为使用picocli。现有选项之一如下所示:
-t, --threads [1, n] for fixed thread pool, 'cpus' for number of cpus, 'cached' for cached
这允许选项为正整数或两个特殊字符串中的一个。现有代码将其视为字符串,如果它不是特殊字符串之一,则将其传递给 Integer.parseInt
.
当然,我可以对皮科利做同样的事情,但我想知道是否有更好的方法来处理这个问题。e、 例如,允许对同一个选项使用多个字段,并根据传递的内容填写相应的字段?这可能还允许我对可能的字符串选项使用枚举。
1条答案
按热度按时间new9mtju1#
一个想法是为这个创建一个类,比如,也许
ThreadPoolSize
,它封装了固定数值或动态值的枚举。您需要为此数据类型创建一个自定义转换器。然后可以按如下方式定义选项:
线程池大小和转换器的自定义数据类型可以如下所示: