Scala: parola chiave come nome del pacchetto
-
06-07-2019 - |
Domanda
Sto cercando di utilizzare una libreria Java (nessun codice sorgente disponibile) che definisce alcuni pacchetti xxx.xxx.object . Scala si lamenta della presenza di "oggetto" nel nome del pacchetto, quindi non posso importare da esso e non posso nemmeno fare riferimento alle sue classi con un nome completo.
C'è un modo per aggirarlo?
Soluzione
Avvolgere l'oggetto in un `(la virgoletta accanto a 1) dovrebbe funzionare.
xxx.xxx.`object`
Altri suggerimenti
Per completare agilefall s rispondi , Specifica del linguaggio Scala menziona che un'importazione è composta da id
:
id ::= plainid
| ‘\`’ stringLit ‘\`’
un identificatore può anche essere formato da una stringa arbitraria tra virgolette (i sistemi host possono imporre alcune restrizioni su quali stringhe sono legali per gli identificatori). L'identificatore quindi è composto da tutti i caratteri esclusi i backquotes stessi.
Le stringhe racchiuse in backquote sono una soluzione quando è necessario accedere a identificatori Java che sono parole riservate in Scala.
Ad esempio, l'istruzioneThread.yield ()
è illegale, poichéyield
è una parola riservata in Scala. Tuttavia, ecco una soluzione:
Thread.`yield`()