gpt4 book ai didi

scala - 检测Scala对象中的内部对象

转载 作者:行者123 更新时间:2023-12-04 11:41:53 25 4
gpt4 key购买 nike

我想获得一个 scala 对象的内部对象列表。示例代码:

object Outer {
val v = "-"
def d = "-"
object O1
object O2
}

object Main {
def main(args: Array[String]) {
Outer.getClass.getDeclaredMethods.map(_.getName) foreach println // prints d and v
// Outer.getClass.get ... Objects???
}
}

我可以找到 v 和 d,但是我怎样才能找到 O1 和 O2 呢?

最佳答案

使用 Scala 2.10(自里程碑 4 起)中的新反射库,可以获得内部对象:

scala> import scala.reflect.runtime.{universe => u}
import scala.reflect.runtime.{universe=>u}

scala> val outer = u.typeOf[Outer.type]
outer: reflect.runtime.universe.Type = Outer.type

scala> val objects = outer.declarations.filter(_.isModule).toList
objects: List[reflect.runtime.universe.Symbol] = List(object O1, object O2)

关于scala - 检测Scala对象中的内部对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10893712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com