Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

355
Vistas
¿Por qué @Transient no se puede usar con campos val?

Escribí la clase de datos

 data class FileHeader( val relativePath: String, val orderNumber: Long, val bodySize: Int ) : Serializable { @Transient var headerSize: Int = 0 get() = relativePath.length + 8 }

Funciona como espero.

Pero, ¿por qué no puedo usar @Transient con el campo val?

el error es:

Esta anotación no se aplica a la propiedad de miembro de destino sin campo de respaldo o delegado

¿Hay alguna razón por la que se implementó de esta manera?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

la anotación

Marca el campo de respaldo de JVM de la propiedad anotada como transient , lo que significa que no forma parte de la forma serializada predeterminada del objeto.

La serialización predeterminada funciona en los campos y no se preocupa por los métodos getter. Entonces, si no hay un campo de respaldo, no hay nada que serializar (y nada que marcar como transient en el código de bytes). La anotación sería inútil en este caso, por lo que los diseñadores optaron por convertirla en un error.

Si no ve por qué no hay un campo de respaldo:

Se generará un campo de respaldo para una propiedad si utiliza la implementación predeterminada de al menos uno de los accesores, o si un accesor personalizado lo hace referencia a través del identificador de campo.

Con su var , el setter predeterminado necesita el campo de respaldo; cuando lo cambias a val , no lo es.

over 4 years ago · Santiago Trujillo Denunciar

0

Prueba esto

 @get:javax.persistence.Transient val headerSize get() { ... }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda