À M :
J'essaie d'appeler un constructeur à traiter correctement les trois classes différentes, mais je ne suis pas en mesure de le faire
public class B {
private final A a;
public B(A a) {
this.a = a;
}
private final C c = new C(a);
}
Je l'erreur « une variable pourrait ne pas avoir été initialisé », je sais une façon de le faire en mettant un second argument dans le constructeur de B et de l'appeler dans la classe principale B, mais est-il une autre façon?
plat:
Sûr.
public class B {
private final A a;
public B(A a) {
this.a = a;
c = new C(a);
}
private final C c;
}
La raison pour laquelle le vôtre ne fonctionne pas est que initializers à déclaration sont exécutées avant que les constructeurs.