2010-02-13 16 views

Respuesta

23

, es un campo normal. Puede comprobar si está transitoria por:

Modifier.isTransient(field.getModifiers()); 

transitoria: una palabra clave en el lenguaje de programación Java que indica que un campo no es parte de la forma de serie de un objeto. Cuando un objeto se serializa, los valores de sus campos transitorios no se incluyen en la representación en serie, mientras que los valores de sus campos no transitorios se incluyen.

No hay razón lógica para que no sea accesible por reflexión. Es el valor del campo que se ignora (a veces), no el campo en sí.

(por cierto, lo que impidió tratando de llamar getDeclaredField("yourTransientField")?)

+0

Perdí un par en el primer fragmento de código :) – RCIX

3

transient indica que el campo no se puede serializar. El campo todavía está declarado por la clase, por lo que es un juego justo para la reflexión.

2

Entre todos los objetos que necesitan ser serializados hay aquellos que no necesitan ser serializados. Es por eso que estos objetos están marcados con la palabra clave transient.

0

transient campos no tienen nada que ver con la reflexión. La palabra clave solo indica que un campo se debe omitir durante el proceso Java serialization. Entonces la reflexión puede acceder a los campos transient como cualquier otro campo.

Cuestiones relacionadas