// Datei Animal.scalaScala - Objekt erweitert abstrakte Klasse und nimmt Parameter
abstract class Animal {
val name: String
def getSomething(tClass: TypeClass): String = {
tClass.tName.split('.').lift(0)
}
def apply(tClass: TypeClass): SomeOtherClassType = {
// something...
}
// Datei: DogSpike, ist dies für einige spezielle Fälle verwendet (überschreibt Basis Klasse val)
object DogSpike extends Animal {
override val name: String = "Spike"
}
dieser Aufruf funktioniert dann (Anrufe gelten)
myTransformation(() => DogSpike(this))
Jetzt würde ich ein allgemeineres Objekt erstellen möchten, dass man Argumente übergeben kann, aber ich bin nicht in der Lage.
Es würde ein abgeleitetes Objekt von Tiere zu schaffen, die ein Argument und in der Lage ist, nimmt den Aufruf Anwendung verwenden
object TheDog(name: String) extends Animal {
override val name: String = "Spike"
//...
}
nicht sicher, wie implizit nennen Animal.apply für TheDog
Objekt, wo ich passieren konnte ein Parameter (Name)
myTransformation(() => TheDog(this))
// also this seems to be incorrect "*Wrong top statement declaration*"
object TheDog(val n: String) extends Animal {
override val name: String = n
//...
}
Dank für die tiefe Erklärung: tion sieht schon kompliziert): oder einfach nur in einem Wrapper
Aber noch was ist der Punkt, wenn man nur
clazz
entweder als Mitglied zugrunde liegenden bieten könnte. –