Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

359
Views
¿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 answers
Answer question

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 Report

0

Prueba esto

 @get:javax.persistence.Transient val headerSize get() { ... }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!