Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/10/2010, 09:35
posman
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 11 meses
Puntos: 57
Respuesta: Uso de Static Final

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 original
  1. import java.util.Date;
  2.  
  3. class Otraclase {
  4.     public static final int MiConstante;
  5.  
  6.     static {
  7.         MiConstante = Miclase.temp;
  8.         System.out.println("Static: " + new Date());
  9.     }
  10. }
  11. public class Miclase {
  12.     public static int temp;
  13.  
  14.     public static void main(String[] args) {
  15.         temp = Integer.parseInt(args[0]);
  16.         System.out.println(Otraclase.MiConstante);
  17.     }
  18. }