trait MyTrait {
// blah
}
object MyTrait {
// Check to see if OtherTrait has been used/initialized yet
try {
val c = Class.forName("...OtherTrait")
println("found " + c.getName)
. . .
} catch {
case classNotFoundException : ClassNotFoundException =>
println("ClassNotFoundException: " + classNotFoundException.getMessage)
}
}
这种特性将代码是什么样子,看看OtherTrait的对象是否已经被初始化,这样,我不希望它初始化作为检查的副作用?
这似乎是一个反射的东西,我知道如何检查Class.forName以查看“... OtherTrait”是否可以从类加载器,但即使类加载器可以找到它,我想知道它是否已经初始化。也就是说,如果没有其他人使用它,我不想使用它。
这里的大图是什么?你能解释一下为什么你不希望你的特质成为第一个使用这个其他类的特质? – Tyler