Is it possible to initialize an attribute in an enclosed trait of a cake pattern? Something similar to early initializers. For example:
object CakePatternInit {
trait A {
var prop: String = null
}
trait A1 extends A
trait B {
this: A =>
println(prop.toUpperCase) // I'd like here prop to be initialized already with "abc"
}
def main(args: Array[String]) {
val b = new B with A1
// how do I initialize prop here?
// can I write something like this:
// val b = new B with { prop = "abc" } A1
}
}
Declare your
prop
as method, because scala can't override var'sThere is an article that can help you: cake pattern