Ich arbeite gerade an einem kleinen scala DSL für Android (https://github.com/bertderbecker/scalandroid).Scala: Wie implizite Konstruktorparameter überschrieben werden?
val drawerLayout = new SDrawerLayout {
openDrawerFrom = SGravity.LEFT
fitsSystemWindows = true
navigationView = new SNavigationView {
println(parent) //None - the parent of the drawerlayout
// I want that the parent is the drawerlayout
layout = SLayout.NAVI_HEADER_DEFAULT
fitsSystemWindows = true
}
}
Wie kann ich die SNavigationView sagen die SDrawerLayout als seine Eltern zu verwenden, nicht die Eltern des DrawerLayout?
Also, im Allgemeinen möchte ich eine Klasse foo (0) haben, die ein foo (-1) als impliziten Parameter und innerhalb Sie können ein foo (+1), die das foo (0) von Anfang an als impliziter Parameter.
So foo ist "rekursiv".
Was ich will, ist:
class foo()(implicit parent: foo) {
parent = this
val f = new Foo { //takes this as its parent
}
}
Verwendung implizite Methoden! –