Código:
public static final int MiConstante;
public void crearConstante(int pValor){
MiConstante = pValor;
}
Por que no inicializas la variable directamente en la linea donde la declaras?
Si ese valor lo obtienes de alguna otra parte como BD, archivo de configuracion, parametro, etc. podrias asignarle el valor en el
static initializer. El
static initializer solo se ejecuta una vez (cuando la clase es leida/necesaria por primera vez).
Este codigo utiliza clase con una variable
static final y su valor se le asigna la primer vez que es necesaria la clase (linea 17). El programa puede recibir un parametro (de tipo entero) que se utiliza para inicializar la variable
temp. Lo que ocurre es que cuando quieres imprimir el valor de
MiConstante (linea 17), se ejecuta el
static initializer de la clase
Otraclase
Código Java:
Ver originalimport java.util.Date;
class Otraclase {
public static final int MiConstante;
static {
MiConstante = Miclase.temp;
}
}
public class Miclase {
public static int temp;
public static void main
(String[] args
) { System.
out.
println(Otraclase.
MiConstante); }
}