Initialiser la variable finale avant de constructeur en Java

Est-il une solution pour utiliser une variable finale dans une Java constructeur?
Le problème est que si j'initialise un champ final comme:

private final String name = "a name";

alors je ne peut pas l'utiliser dans le constructeur. Java s'exécute en premier le constructeur et ensuite les champs. Est-il une solution qui me permet d'accéder à la finale de terrain dans le constructeur?

Je suppose que vous voulez changer la valeur dans le constructeur de droite ?
Je vote pour le fermer car, selon ma compréhension, il s'avère que ce n'est pas vraiment un problème. Ce que l'OP est en train de faire devrait fonctionner.
Le constructeur implicitement exécute le champ initialisation immédiatement avant l'appel de la super constructeur.
en fait, tout le champ de l'initialisation se produit après l'appel du constructeur de la superclasse. Essayez de regarder le pseudo-code et de voir. En vertu de la spécification de la JVM, il est possible d'initialiser les champs avant de le ctor appel, mais Javac n'est jamais le cas.
Oups, oui. Effectivement l'extérieur cette de un intérieur de classe est disponible lors de l'appel à super (-target 1.4 ou plus tard).

OriginalL'auteur Tobias | 2009-03-24