看起來這讓我接近,但(一)不完全(見下文),和(b)使用名稱的字符串表示感覺就像一個黑客...從Scala(2.10)類型標記或符號獲取Java類的任何方式?
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 [...]
我缺少多一些直接訪問這些信息的方法?或者是最好的,如果我在某個時候還需要類信息,只是爲了保持一組Java類信息? (唉!)
如果你可以得到一個AnyRef類型的實例,你不能只返回到java.lang.Object-y的好處,並調用myObj.getClass()。getName()? –
例如,對象X {類Y} 定義模塊X 階>(新XY).getClass.getName res7:java.lang.String中= X $ Y –
作爲快速建議,嘗試運行'階-Xprint :typer「來查看REPL是否以及如何將X包裝到自己的對象中。 – pedrofurla