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?

È stato utile?

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'istruzione Thread.yield () è illegale, poiché yield è una parola riservata in Scala. Tuttavia, ecco una soluzione:

Thread.`yield`()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top