Muszę zrobić dopasowanie wzorca na zajęcia. Problem polega na tym, że mam kilka problemów pasujących do Long.Scala: Jak wzorować mecz scala.Long i java.lang.Long
Potrzebuję obsługiwać scala.Long i java.lang.Long w ten sam sposób, ale dlaczego muszę zadeklarować je oba w przypadkach?
Oto przykład:
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)
Czy istnieje sposób, aby obsługiwać je tak samo, bez konieczności wystąpienia, ale po prostu klasę?
Tylko jeśli mam wartość! Potrzebuję tego do pracy, kiedy mam tylko zajęcia, tak jak powiedziałem w pytaniu: "Czy istnieje sposób, aby poradzić sobie z nimi tak samo, nie mając instancji, ale tylko klasę?" – maklemenz
@mklemenz dobrze byś służył do ograniczenia przykładów do dokładnie tego, co chcesz. Większość (2/3) Twoich przykładowych metod ma wartość, tylko jedna ma tylko klasę. –
Edytowałem pytanie – maklemenz