【发布时间】:2012-07-27 17:23:35
【问题描述】:
我有一个特点:
trait A {
/*Some methods*/
}
而且我有很多课:
class B(val argument: SomeClass) extends A {
/*Some methods*/
}
我想从 trait 中得到一个参数。我可以在每个类和特征中创建方法 getArgument:
trait A {
def getArgument: SomeClass
/*Some methods*/
}
class B(val argument: SomeClass) extends A {
def getArgument = argument
/*Some methods*/
}
或者使用反射:
trait A {
def getArgument = {
val f = this.getClass.getDeclaredField("argument")
f.setAccessible(true)
f.get(this).asInstanceOf[SomeClass]
}
/*Some methods*/
}
class B(val argument: SomeClass) extends A {
/*Some methods*/
}
有没有更好的方法来做到这一点?
【问题讨论】:
标签: scala