给定一个类的实例,我们可以明显地回到它的名字:斯卡拉:获取类性状混合的名称
trait MixedInClassDiscovery {
val className = this.getClass.getName
}
class AClass extends MixedInClassDiscovery {
...
this.className // returns "AClass"
...
}
但是这样使用反射,一旦为AClass
每个实例。相反,每个班级都可以做一次吗?
想到的一个解决方案是将其混合到伴侣对象中,而不是类本身。
不,这段代码仍然会为每个实例进行反射调用。实际上,对于每个'className'调用,尽管这可以被平凡地修复。 – 2010-05-12 20:01:57