Comment puis-je appeler un constructeur correctement dans ce cas?

À 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.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=236171&siteId=1
conseillé
Classement