Ho bisogno di fare un pattern match su Classes. Il problema è che ho alcuni problemi che corrispondono a Long.Scala: come abbinare scala.Long e java.lang.Long
Ho bisogno di gestire scala.Long e java.lang.Long allo stesso modo, ma perché devo dichiararli entrambi nei casi?
Ecco un esempio:
def test(typ: Class[_]) {
typ match {
case q if q == classOf[Long] => println("scala long...")
}
}
val scalaLongField: java.reflect.Field = ......
val javaLongField: java.reflect.Field = ......
test(scalaLongField.getType) // prints "scala long..."
test(javaLongField.getType) // scala.MatchError: class java.lang.Long (of class java.lang.Class)
Esiste un modo per gestire loro la stessa senza avere un grado, ma solo la classe?
Solo se ho il valore! Ho bisogno di questo per funzionare quando ho solo la classe, come ho detto nella domanda: "C'è un modo per gestirli allo stesso modo senza avere un'istanza ma solo la classe?" – maklemenz
@mklemenz ti farebbe bene a restringere i tuoi esempi esattamente a ciò che desideri. La maggior parte (2/3) dei metodi di esempio ha il valore, solo una ha solo la classe. –
Ho modificato la domanda – maklemenz