Wygląda na to dostaje mnie blisko, ale (a) nie do końca (patrz poniżej), oraz (b) przy użyciu znaków reprezentujący nazwę czuje hack ...Jakikolwiek sposób uzyskania klasy Java ze znacznika lub symbolu typu 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 [...]
jestem brakuje niektórych więcej bezpośrednia metoda dostępu do tych informacji? A może najlepiej będzie, jeśli w jakimś momencie będę potrzebował informacji o klasie, aby zachować równoległy zestaw informacji o klasie Java? (Fuj!)
jeśli możesz uzyskać instancję typu AnyRef, czy nie możesz po prostu powrócić do właściwości java.lang.Object-y i wywołać myObj.getClass(). GetName()? –
na przykład obiekt klasy X {Y} zdefiniowany moduł X scala> (nowa XY) .getClass.getName res7: java.lang.String = X $ Y –
Jako szybki sugestia, spróbuj uruchomić 'scala -Xprint : typer', aby zobaczyć, czy i jak REPL faktycznie opakowuje X w swoje własne obiekty. – pedrofurla