Ошибка компиляции 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')
Другие вопросы по тегам