給定一個類的實例,我們可以明顯地回到它的名字:斯卡拉:獲取類性狀混合的名稱
trait MixedInClassDiscovery {
val className = this.getClass.getName
}
class AClass extends MixedInClassDiscovery {
...
this.className // returns "AClass"
...
}
但是這樣使用反射,一旦爲AClass
每個實例。相反,每個班級都可以做一次嗎?
想到的一個解決方案是將其混合到伴侶對象中,而不是類本身。
不,這段代碼仍然會爲每個實例進行反射調用。實際上,對於每個'className'調用,儘管這可以被平凡地修復。 – 2010-05-12 20:01:57