我使用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()
,则无效。
为什么?
BTW,Java解析这个问题。
答案 0 :(得分:12)
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()
,则无效。为什么?
因为 hasArg
中没有实例方法OptionBuilder
,所以只有静态方法。由于hasArg
是一个静态方法,你显然需要在类上调用它,而不是在类的实例上调用它。
BTW,Java解析这个问题。
我不明白这与解析有什么关系。 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')