Java 26: o que muda quando você altera um campo final com reflection (JEP 500)
Outro dia eu estava preparando material para o DevConverge Buenos Aires, que acontece dia 11 de abril, e resolvi montar um exemplo rápido sobre uma das mudanças do Java 26 que eu acho que vai pegar...

Source: DEV Community
Outro dia eu estava preparando material para o DevConverge Buenos Aires, que acontece dia 11 de abril, e resolvi montar um exemplo rápido sobre uma das mudanças do Java 26 que eu acho que vai pegar muita gente de surpresa. Não é HTTP/3. Não é o G1 mais rápido. É algo que parece simples, mas mexe com a fundação de como a gente escreve Java há anos: o JEP 500, chamado "Prepare to Make Final Mean Final", que começa a emitir warnings quando alguém muta um campo final usando reflection. E sim, eu sei. Você provavelmente já fez isso. Eu também já fiz. O que é o JEP 500 do Java 26? O JEP 500 é uma mudança no Java 26 que emite um aviso em tempo de execução sempre que um campo declarado como final é alterado via deep reflection. Essa alteração faz parte da iniciativa "Integrity by Default" do OpenJDK, que pretende garantir que o modificador final seja respeitado de verdade pela JVM. No Java 26, o comportamento padrão é emitir um warning. Em uma versão futura do JDK, esse warning será substituíd