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
、クラスのインスタンスではなく、クラスで呼び出す必要があることは明らかです。
ところで、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')