问题描述
下面的代码产生以下结果:
as member: nested: AnyRef{def x: Int; def x_=(x$1: Int): Unit}
as local: nested: Object
(已通过Scala 2.12.12和Scala 2.12.3测试)
有人可以解释为什么吗?
object Main extends App {
def getnestedType(m: Any) = {
import scala.reflect.runtime.currentMirror
for {
symbol <- currentMirror.classSymbol(m.getClass).toType.members
if symbol.isTerm && !symbol.isMethod && !symbol.isModule
} yield {
s"{symbol.name.decodedname}: ${symbol.info}"
}
}
object obj {
var nested = new {
var x = 0
}
}
getnestedType(obj).foreach(x => println(s"as member: $x"))
def f(): Unit = {
object obj {
var nested = new {
var x = 0
}
}
getnestedType(obj).foreach(x => println(s"as local: $x"))
}
f()
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)