Ich möchte eine Familie von Merkmalen schreiben, deren Methoden sollten etwas protokollieren und eine Logger-Eigenschaft, die in konkrete Logger implementiert werden sollte und es sollte nur möglich sein, die oben genannten Merkmale wenn ein Logger mischen ist auch gemischt. Ich weiß nur, dass ein Merkmal von einer Klasse abhängen kann, d. H. Es kann nur in Klassen gemischt werden, die diese Klasse als Super-Typ haben. Was kann ich tun?Scala: Lassen Merkmal von anderen Merkmal
1
A
Antwort
3
Es klingt, als ob Sie self types benötigen, z.
trait Logger {
def log(msg: String): Unit
}
trait ConsoleLogger extends Logger {
def log(msg: String): Unit = { println(msg) }
}
trait NeedsLogger { self: Logger =>
def doSomething(): Unit = {
self.log("about to do something...")
self.log("it worked!")
}
}
object Test extends NeedsLogger with ConsoleLogger {
}
Test.doSomething()
Verwandte Themen
- 1. Scala - Sealed Merkmal grand Kind
- 2. Scala - Mehrfachvererbung mit App-Merkmal
- 3. Dynamische Merkmal Unterschied von Scala 2,9-2,10
- 4. scala/akka der Fallklasse mit Merkmal
- 5. Annotationsinformationen verloren in scala 2.12 Merkmal
- 6. Merkwürdiges Merkmal? von Ruby Arrays
- 7. Mixin oder Merkmal in F #
- 8. Was sind "Merkmal: Einheiten" und "Varianz.Funktion (Merkmal): Einheiten" in "MCMCglmm"?
- 9. Wiederverwendung von Java generische Auflistungen in Scala ohne Merkmal Objekt
- 10. Scala Vergleich von Merkmal val Mitglied mit abstrakten Typ
- 11. Scala Reflection - Laden oder Suchen von Klassen basierend auf Merkmal
- 12. Call eigene Methode von Merkmal
- 13. Bedeutung von "Merkmal" in MCMCglmm
- 14. Überschreibe implizite Werte von Merkmal
- 15. Bibliotheksunterstützung für Scalas NotNull-Merkmal
- 16. Polymorphismus in Rust und Merkmal Referenzen (Merkmal Objekte?)
- 17. Zugriffsmethoden von Generic, die ein Merkmal ausdehnen
- 18. Scala REPL: Finden, wo gegebene Klasse/Merkmal definiert ist
- 19. laden verschachtelt Merkmal Klasse
- 20. Merkmal nicht registriert: Attributname
- 21. Merkmal in phpunit Testfall
- 22. Set in Typescript/ECMAScript Merkmal
- 23. Lazy Assertions in einem Merkmal
- 24. Scala Slick generische Tabellen Merkmal bewegt aus DAO
- 25. Call-Eigenschaft von einem anderen Merkmal mit Params in Factory_Girl
- 26. Scala Put-Methode in Merkmal oder in Fallklasse?
- 27. Scala Spielen 2.5.X - Dependency Injection mit einem Merkmal
- 28. implementiert ich ein Merkmal für ein anderes Merkmal kann aber Methoden nicht nennen von beiden Züge
- 29. Typ Merkmal cv Referenz-Qualifikation
- 30. Merkmal Detektoren und Deskriptoren Vergleich