2012-05-01 7 views
6

Próbuję przenieść kod Java do scala. Kod używa adnotacji z elementem o nazwie type, ale jest to słowo kluczowe w scala. Czy istnieje sposób na adres tego ważnego członka Java w scala?Nie można ustawić elementu adnotacji java o nazwie type w scala?

Oto kod Java

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

Ta część kodu jest identyczna w Scala, z wyjątkiem tego type jest słowem kluczowym, więc nie skompilować. Czy istnieje sposób na uniknięcie słowa kluczowego type?

Jest to również problem z klas Javy z członkiem 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 
} 

Odpowiedz

15

Można wykorzystać odwrócone, pojedyncze apostrofy, aby uzyskać wokół nielegalnych identyfikatorów:

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

Więc z kodem, można to zrobić:

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

Doskonałe, wiem, że nie musi być droga, to jest właśnie to, czego szukałem. – iain

Powiązane problemy