Curiosidade sobre Constantes publicas no Groovy

Java precisa que você defina se uma variável ou constante é private / protected / public, ou "em branco" que seria package.

No Groovy o "em branco" tem outro sentido, mais próximo de public. Mas na verdade o que o Groovy faz é criar um getVariavel() e um setVariavel() sempre.

Isto fica no mínimo estranho quando se trata de uma constante:

static final String CONSTANTE = 'valor da constante'

Pois será criado na sua classe um

getCONSTANTE()
setCONSTANTE(String valor)

Apesar de não fazer exatamente muita diferença para a programação em si, este código injetado faz parte da sua classe compilada, ocupando espaço da memória Java uma vez que várias classes em seu programa estarão "inchando" desnecessariamente.

Em constantes opte por utilizar public explicitamente, para evitar este comportamento do Groovy de inchar sua classe.

public static final String CONSTANTE = 'valor da constante'
Bruno Vieira Over 8 years ago