Scala: ключевое слово как имя пакета

Я пытаюсь использовать библиотеку Java (нет исходного кода), который определяет некоторый пакет xxx.xxx.object. Scala жалуется на наличие "объекта" в имени пакета, поэтому я не могу импортировать его, и я не могу ссылаться на его классы с полным именем.

Есть ли способ?

Ответы

Ответ 1

Обертка объекта в `(цитата рядом с 1) должна работать.

xxx.xxx.`object` 

Ответ 2

Чтобы завершить agilefall ответ, Scala Спецификация языка упоминает, что импорт состоит из id:

id ::= plainid
| ‘\`’ stringLit ‘\`’

идентификатор также может быть сформирован произвольной строкой между обратными кавычками (хост-системы могут налагать некоторые ограничения, по которым строки являются законными для идентификаторов). Затем идентификатор состоит из всех символов, исключая сами обратные кавычки.

Строки, заключенные в Backquote, являются решением, когда нужно получить доступ к идентификаторам Java, которые зарезервированы в Scala.
Например, утверждение Thread.yield() является незаконным, поскольку yield является зарезервированным словом в Scala. Тем не менее, она работает вокруг:

Thread.`yield`()