Ошибка компиляции Scala OptionBuilder
Я использую 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 это хорошо разбирает.
1 ответ
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')