
Originariamente inviata da
Vettel
non capisco come si possa assegnare i campi solo nel più completo nel caso in cui non si arriva ad esso
Ovviamente si deve arrivare al costruttore più completo!
codice:
public class Prova {
private String a;
private String b;
private String c;
private String d;
public Prova(String a) {
this(a, "");
}
public Prova(String a, String b) {
this(a, b, "");
}
public Prova(String a, String b, String c) {
this(a, b, c, "");
}
public Prova(String a, String b, String c, String d) {
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
// altro .....
}
Come vedi, i primi 3 costruttori arrivano sempre (direttamente o indirettamente) al costruttore completo, l'ultimo.
In alternativa, per evitare di incatenare insieme più invocazioni this(), si può far arrivare direttamente al costruttore completo:
codice:
public class Prova {
private String a;
private String b;
private String c;
private String d;
public Prova(String a) {
this(a, "", "", "");
}
public Prova(String a, String b) {
this(a, b, "", "");
}
public Prova(String a, String b, String c) {
this(a, b, c, "");
}
public Prova(String a, String b, String c, String d) {
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
// altro .....
}
Nota la differenza dei primi due costruttori. E queste due forme, comunque, sono un po' più "pulite" della tua versione.