Gibt es eine Möglichkeit, nur auf den generischen Typ zu passen, der in Funktion übergeben wurde? Ich würde gerne tun:Wie scala generischen Typ zu entsprechen?
def getValue[T](cursor: Cursor, columnName: String): T = {
val index = cursor.getColumnIndex(columnName)
T match {
case String => cursor.getString(index)
case Int => cursor.getInteger(index)
}
Ich dachte an so etwas wie classOf
oder typeOf
, aber keiner von ihnen ist für nur Typen akzeptabel, aber Objekte.
Meine Idee war auch, ein Objekt vom Typ T
zu erstellen und dann seinen Typ zu überprüfen, aber ich denke, dass es eine bessere Lösung geben kann.
+1. Aber ich würde gerne verdinglichte Generika in Scala lieben. :) –
@ PatrykĆwiek: Es ist möglich, Typ Informationen in einem zusätzlichen Feld zu speichern, aber es wird Java-Kompatibilität zu brechen. Es gibt keine Möglichkeit, Typenlöschung in Java-Typen zu vermeiden. – senia
Ich weiß, ich weiß. Nur Wunschdenken. Vielleicht bin ich nur ein bisschen von C#/F # verwöhnt. –