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

StackOverflow https://stackoverflow.com/questions/1215767

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

xxx.xxx.`object` 

Другие советы

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

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

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

     

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

Thread.`yield`()
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top