appare come questa mi fa vicino, ma (a) non del tutto (vedi sotto), e (b) utilizzando la rappresentazione di stringa di un nome si sente come un hack ...Un modo per ottenere una classe Java da un tag o un simbolo di Scala (2.10)?
scala> import scala.reflect.runtime.universe._import scala.reflect.runtime.universe._
scala> val t = typeOf[Int]
t: reflect.runtime.universe.Type = Int
scala> t.typeSymbol.asClass.fullName
res0: String = scala.Int
scala> object X { class Y }
defined module X
scala> val y = typeOf[X.Y]
y: reflect.runtime.universe.Type = X.Y
scala> Class.forName(y.typeSymbol.asClass.fullName)
java.lang.ClassNotFoundException: X.Y [...]
Mi manca ancora un po ' metodo diretto di accesso a queste informazioni? O sarà meglio, se avrò bisogno anche delle informazioni di classe a un certo punto, solo per mantenere un insieme parallelo di informazioni sulla classe Java? (Uffa!)
se è possibile ottenere un'istanza di un tipo AnyRef, non è possibile ripristinare la bontà java.lang.Object-y e chiamare myObj.getClass(). GetName()? –
per esempio, oggetto X {} classe Y definito modulo X scala> (nuova XY) .getClass.getName res7: java.lang.String = X $ Y –
Come un rapido suggerimento, provare a eseguire 'Scala -Xprint : typer' per vedere se e in che modo REPL sta effettivamente avvolgendo la X nei propri oggetti. – pedrofurla