5
Esiste un modo per associare solo al tipo generico passato in funzione? Mi piacerebbe fare:Come abbinare il tipo generico di scala?
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)
}
ho pensato a qualcosa di simile classOf
o typeOf
, ma nessuno di loro è accettabile solo per i tipi, ma oggetti.
La mia idea era anche di creare qualche oggetto di tipo T
e quindi controllare il suo tipo, ma penso che ci possa essere una soluzione migliore.
+1. Ma oh, mi piacerebbe i generici reificati in Scala. :) –
@ Patrykéwiek: È possibile memorizzare le informazioni sul tipo in qualche campo aggiuntivo, ma interromperà la compatibilità java. Non c'è modo di evitare la cancellazione del tipo nei tipi da java. – senia
Lo so, lo so. Solo un pio desiderio. Forse sono solo un po 'viziato da C#/F #. –