Hier ist mein Problem.Scala bietet Typinformationen in der Unterklasse generische Funktion
Ich habe eine abstrakte Klasse, die eine Methode mit Typparametern als Eingabe und Ausgabe definiert. Ich möchte, dass die Unterklassen die Typinformationen beim Unterklassen bereitstellen, aber ich möchte es so machen, dass ich die ganze Klasse nicht parametriere.
Einige Pseudo-Code von dem, was ich anstrebe.
abstract class A {
def foo[T](t: T): T
}
class B() extends A {
override foo[Int](t: Int): Int = t + 1
}
class C() extends A {
override foo[Double](t: Double): Double = t + 1.0
}
Wie gebe ich die Typinformationen für Unterklassen weiter? Ich schaute auf ähnliche Probleme. Sie adressieren das mit Selbstarten, Typklassen und abstrakten Typen.
Dank
Wenn ich versuche, mit der foo-Funktion von außen zu arbeiten und etwas wie 'foo (t)' zu übergeben, wobei t als 'T <: A' definiert ist, bekomme ich' type mismatch; erwartet t.T; actual T' – zaxme
Was meinst du mit "von außen gehen"? Sie müssen den Typ beim Erstellen der Instanz von "B" und "C" definieren. –
'Klasse D [T <: A] { def blah (t: T): T = { t.foo (t) } }' – zaxme