gpt4 book ai didi

parsing - Scala 错误编译 OptionBuilder

转载 作者:行者123 更新时间:2023-12-04 17:04:53 26 4
gpt4 key购买 nike

我正在使用 Apache commons cli (1.2) 进行命令行解析。

我的代码中有以下内容:

import org.apache.commons.cli.OptionBuilder
OptionBuilder.withLongOpt("db-host").hasArg.
withDescription("Name of the database host").create('h')

我收到错误 hasArg is not a member of org.apache.commons.cli.OptionBuilder .如果我改变没有区别 .hasArg.hasArg() .

为什么?

顺便说一句,Java 解析得很好。

最佳答案

import org.apache.commons.cli.OptionBuilder
OptionBuilder.withLongOpt("db-host").hasArg.
withDescription("Name of the database host").create('h')

I get the error hasArg is not a member of org.apache.commons.cli.OptionBuilder. It makes no difference if I change .hasArg to .hasArg().

Why?



因为没有实例方法 hasArgOptionBuilder ,只是一个静态方法。自 hasArg是一个静态方法,您显然需要在类上调用它,而不是在类的实例上。

BTW, Java parses this fine.



我不明白这与解析有什么关系。 Scala 也能很好地解析它。另外,一些完全不同的编程对这段代码做什么或不做什么完全无关,因为这是 Scala 代码,而不是其他语言。

你需要做这样的事情:
import org.apache.commons.cli.OptionBuilder

OptionBuilder.withLongOpt("db-host")
OptionBuilder.hasArg
OptionBuilder.withDescription("Name of the database host")

val optionParser = OptionBuilder.create('h')

关于parsing - Scala 错误编译 OptionBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4903296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com