@xtccc
2017-01-04T21:27:25.000000Z
字数 616
阅读 1585
Scala
目录
假设有一个基类Base,我们希望在classpath中找出Base有哪些派生类。
可以借助ClassUtil来实现。
package cn.gridx.scala.lang.classes.classutils
import org.clapper.classutil.ClassFinder
object FindSubClass extends App {
val finder = ClassFinder()
val classes = finder.getClasses()
val classMap = ClassFinder.classInfoMap(classes)
val plugins = ClassFinder.concreteSubclasses("cn.gridx.scala.lang.classes.classutils.Base", classMap)
plugins.foreach(println)
}
trait Base
class A extends Base
class B extends Base
输出为:
cn.gridx.scala.lang.classes.classutils.B
cn.gridx.scala.lang.classes.classutils.A