Considere el siguiente código:Cómo acceder el valor de un campo a través de la reflexión (Scala 2.8)
class Foo(var name: String = "bar")
ahora trato de obtener el valor y el tipo correcto de la misma a través de la reflexión:
val foo = new Foo
val field = foo.getClass.getDeclaredField("name")
field.setAccessible(true)
//This is where it doesn't work
val value = field.get(????)
Intenté cosas como field.get (foo), pero eso solo devuelve un java.lang.Object pero no String. Básicamente, necesito el tipo correcto, porque quiero invocar un método en él (por ejemplo, toCharArray).
¿Cuál es la forma sugerida de hacerlo?
Arreglé el getClass que faltaba, esto era solo un descuido. Me pregunto cómo hacer el reparto sin saber qué es de antemano. Si supiera todo sobre la clase que tengo que manejar, no necesitaría reflexión ... ¡Gracias por las sugerencias! – soc
Puede emparejar el objeto con algo similar a 'valor match {case s: String =>/* hacer algo con una cadena */case _ =>/* hacer otra cosa * /}'. No sé si entiendo lo que quieres hacer. – gerferra