Scala: palavra-chave como nome do pacote
-
06-07-2019 - |
Pergunta
Eu estou tentando usar uma biblioteca Java (sem código fonte disponível) que define alguns xxx.xxx.object pacote. Scala reclama sobre a presença de "objeto" no nome do pacote, então eu não posso importar com isso, e eu não pode se referir a suas aulas com nome completo também.
Existe uma maneira de contornar isso?
Solução
Envolver o objeto em um `(a citação ao lado 1) deve funcionar.
xxx.xxx.`object`
Outras dicas
Para completar agilefall 's resposta , a Scala Language Specification menciona que uma importação é composto por id
:
id ::= plainid
| ‘\`’ stringLit ‘\`’
Um identificador pode também ser formada por uma cadeia arbitrária entre back-aspas (sistemas de acolhimento podem impor algumas restrições em que cordas são legais para identificadores). O identificador, em seguida, é composto por todos os caracteres excluindo os próprios crase.
cordas crase-fechados são uma solução quando a pessoa precisa de acesso Java identificadores que são palavras reservadas em Scala.
Por exemplo, oThread.yield()
declaração é ilegal, uma vezyield
é uma palavra reservada no Scala. No entanto, aqui está uma solução alternativa:
Thread.`yield`()