दिया हुआ यह प्रश्न तथा एसआई-7046, यह वही नहीं है जो मैंने अपेक्षित था।
scalac test.scala && scala Test
निम्नलिखित प्रिंटों पर स्कैला 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 Foo
सेवा मेरे sealed trait Foo
, यह प्रिंट करता है Set(class Bar, class Baz)
जैसा सोचा था।
यहाँ क्या चल रहा है?
उत्तर:
जवाब के लिए 2 № 1डॉक्टर को देखो
/** If this is a sealed class, its known direct subclasses.
* Otherwise, the empty set.
*
* @group Class
*/
def knownDirectSubclasses: Set[Symbol]