Ответ 1
Обертка объекта в `(цитата рядом с 1) должна работать.
xxx.xxx.`object`
Я пытаюсь использовать библиотеку Java (нет исходного кода), который определяет некоторый пакет xxx.xxx.object. Scala жалуется на наличие "объекта" в имени пакета, поэтому я не могу импортировать его, и я не могу ссылаться на его классы с полным именем.
Есть ли способ?
Обертка объекта в `(цитата рядом с 1) должна работать.
xxx.xxx.`object`
Чтобы завершить agilefall ответ, Scala Спецификация языка упоминает, что импорт состоит из id
:
id ::= plainid
| ‘\`’ stringLit ‘\`’
идентификатор также может быть сформирован произвольной строкой между обратными кавычками (хост-системы могут налагать некоторые ограничения, по которым строки являются законными для идентификаторов). Затем идентификатор состоит из всех символов, исключая сами обратные кавычки.
Строки, заключенные в Backquote, являются решением, когда нужно получить доступ к идентификаторам Java, которые зарезервированы в Scala.
Например, утверждениеThread.yield()
является незаконным, посколькуyield
является зарезервированным словом в Scala. Тем не менее, она работает вокруг:
Thread.`yield`()