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?

Foi útil?

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, o Thread.yield() declaração é ilegal, uma vez yield é uma palavra reservada no Scala. No entanto, aqui está uma solução alternativa:

Thread.`yield`()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top