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

305
Visualizações
¿Cómo funciona realmente Lombok.val?

Lombok.val te permite

use val como el tipo de una declaración de variable local en lugar de escribir el tipo. Cuando haga esto, el tipo se deducirá de la expresión del inicializador. La variable local también será definitiva.

Entonces, en lugar de

 final ArrayList<String> example = new ArrayList<String>();

Puedes escribir

 val example = new ArrayList<String>();

He intentado investigar un poco sobre cómo funciona esto realmente, pero no parece haber una gran cantidad de información. Mirando la página de github , puedo ver que val es un tipo de anotación. A continuación, se utiliza el tipo de anotación, en lugar de una anotación real.

Ni siquiera sabía que podría usar tipos de anotaciones de esta manera, pero al probarlo, el siguiente código es realmente válido. Sin embargo, todavía no estoy seguro de por qué querrías usar el tipo de esta manera.

 public class Main { public @interface Foo { } public static void main(String... args) { Foo bar; System.out.println("End"); } }

¿Cómo procesa Lombok estos usos si no son anotaciones, sino tipos de anotaciones? Según mi entendimiento (obviamente incorrecto), la sintaxis debería parecerse más a:

 @Val foo = new ArrayList<String>();

(Soy consciente de que las restricciones de las anotaciones significan que lo anterior no es una sintaxis válida)

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Para que Lombok funcione, el código fuente debe analizarse sin errores. Por eso, como ya mencionaste, @val foo = new ArrayList<String>(); no funcionaría

Aunque Lombok usa anotaciones y un procesador de anotaciones, el procesador de anotaciones solo se usa como un medio para que el compilador se involucre.

Lombok no tiene un procesador registrado para @val . En su lugar, procesa todos los archivos java, visita todo el AST y reemplaza val por el tipo de expresión de inicialización de las variables locales.

Para el reemplazo real, para Eclipse/ecj vea esta clase y esta . Para javac, consulte esta clase .

Divulgación: soy un desarrollador de Lombok.

about 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