gpt4 book ai didi

Scala 反射 : knownDirectSubclasses only works for sealed traits?

转载 作者:行者123 更新时间:2023-12-01 02:03:57 25 4
gpt4 key购买 nike

给定 this questionSI-7046 ,这完全不是我所期望的。
scalac test.scala && scala Test在 Scala 2.11.6 中,以下打印一个空 Set() :

trait Foo
case class Bar() extends Foo
case class Baz() extends Foo

object Test {
def main(args: Array[String]) {
import scala.reflect.runtime.universe._
println( typeOf[Foo].typeSymbol.asClass.knownDirectSubclasses )
}
}

但是,如果我更改 trait Foosealed trait Foo ,它打印 Set(class Bar, class Baz)正如预期的那样。

这里发生了什么?

最佳答案

看文档

/** If this is a sealed class, its known direct subclasses.
* Otherwise, the empty set.
*
* @group Class
*/
def knownDirectSubclasses: Set[Symbol]

关于Scala 反射 : knownDirectSubclasses only works for sealed traits?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34072300/

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