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