¿Se puede obtener un campo transient
utilizando una reflexión? (usando getDeclaredField(..)
)¿Se puede obtener un campo transitorio en una clase utilizando la reflexión
Respuesta
Sí, 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")
?)
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.
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.
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.
- 1. Obtener métodos de clase utilizando la reflexión
- 2. ¿No se puede inicializar un miembro transitorio?
- 3. Obtener el tipo de un campo en Haxe (reflexión API)
- 4. serialización Java con campo transitorio
- 5. Obtener propiedades en orden de declaración utilizando la reflexión
- 6. Cómo crear una java.util.ArrayList con clase genérica utilizando la reflexión
- 7. Cómo acceder al valor de un campo en un objeto utilizando la reflexión
- 8. Android: cambiar definitiva campo utilizando Java reflexión estática privada
- 9. Obtiene el tipo utilizando la reflexión
- 10. ¿Cómo se puede heredar de una clase sellada usando la reflexión en .Net?
- 11. ¿Cómo puedo obtener una lista de los delegados subyacentes de un evento utilizando la reflexión?
- 12. ¿Cómo obtener el valor de un campo estático privado de una clase?
- 13. Obtener valores de IDictionary genérico utilizando la reflexión
- 14. En C#, ¿cuál es la mejor manera de averiguar si una clase tiene una propiedad (utilizando la reflexión)
- 15. ¿Se puede vincular una vista grid de asp.net con un campo en una clase base?
- 16. ¿Cómo puedo detectar el modificador "nuevo" en un campo utilizando la reflexión?
- 17. Reflexión para la clase del parámetro genérico en Java?
- 18. Java: obtenga una referencia a una clase estática utilizando la reflexión
- 19. Conseguir el campo "longitud" en una matriz de Java utilizando la reflexión
- 20. Reflexión sobre una clase caso Scala
- 21. C# Reflexión: Finding atributos en un campo miembro
- 22. qué se puede consultar utilizando la clase ManagementEventWatcher
- 23. ¿Puedo crear una nueva función utilizando la reflexión en Go?
- 24. ¿Cómo obtener la clase de un campo de tipo T?
- 25. Obtener valor de campo/propiedad public static final de una clase en Java a través de la reflexión
- 26. Obtener el tipo de contenedor para un tipo anidado utilizando la reflexión
- 27. Silverlight: ¿No se puede usar el reflejo en GetValue de un campo en XAP?
- 28. utilizando la reflexión para encontrar desaprobación
- 29. ¿Cómo marcar un campo como transitorio hacen posible serializar un objeto
- 30. Obtener el valor de un campo estático público a través de la reflexión
Perdí un par en el primer fragmento de código :) – RCIX