2012-05-01 14 views
6

Sto provando a portare un po 'di codice java su scala. Il codice utilizza annotazioni con un membro chiamato type tuttavia questa è una parola chiave in scala. C'è un modo per indirizzare questo membro java valido in scala?Non è possibile impostare un membro di annotazione java chiamato type in scala?

Ecco il codice Java

@Component(
     name = "RestProcessorImpl", 
     type = mediation // Compile error 
     ) 
public class RestProcessorImpl { 
// impl 
} 

Questa parte del codice è identico a Scala, tranne che type è una parola chiave in modo che non può essere compilato. C'è un modo per sfuggire alla parola chiave type?

Questo è anche un problema di classi Java con un membro type

HasType.java

package spike1; 

public class HasType { 
    public String type() { 
     return "the type"; 
    } 
} 

UseType.scala

class UseType { 
    def hasType = new HasType 
    hasType.type() // Compile error 
} 

risposta

15

È possibile utilizzare apici inversi per ottenere intorno agli identificatori illegali:

val type = 1 // error 
val `type` = 1 // fine 

Quindi, con il codice, si può fare questo:

val hasType = new HasType 
hasType.`type`() // no error 
+0

eccellente, so che ci deve essere stato un modo, che è proprio quello che stavo cercando. – iain

Problemi correlati