Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

356
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

0

Prueba esto

 @get:javax.persistence.Transient val headerSize get() { ... }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda