Buenas,
@posman
No entiendo donde quieres ir a parar. El código que pones en dicho post:
Código Java:
Ver originalpublic static final int MiConstante ;
static {
MiConstante = MiClase.temp;
}
[...]
Es exactamente lo mismo para el compilador que poner directamente esto:
Código Java:
Ver originalpublic static final int MiConstante = MiClase.temp;
Es decir, en tu código en realidad estás haciendo una inicialización en la propia declaración.
Nadie ha dicho que el valor no se pueda asignar en tiempo de ejecución. Si su valor declarado es una referencia a un objeto que se inicializa en ejecución, obviamente no hay problema.
Un saludo