我正在嘗試學習靜態工廠方法及其相對于建構式的優勢,但我的代碼拋出了一個錯誤,即最終的字串名稱未分配值(名稱可能未初始化)
public class Main {
public final String name;
private final String email;
private final String country;
public Main(String name, String email, String country) {
this.name = name;
this.email = email;
this.country = country;
}
public Main() {}
static Main createName(String name, String email) {
return new Main(name, email, "Argentina");
}
public static void main(String[] args) {
Main obj = new Main();
createName("vipin", "vipin.com");
System.out.println("This is name: " obj.name "\n" "This is email address: "
obj.email "\n" "This is country: " obj.country);
}
}
uj5u.com熱心網友回復:
改變:
Main obj = new Main();
createName("vipin", "vipin.com");
到:
Main obj = createName("vipin", "vipin.com");
并忘記沒有正確初始化欄位的無引數建構式。
uj5u.com熱心網友回復:
實體變數由其默認值初始化,除非它是final在實體化物件時。如果您從它的建構式之一初始化它,它就不能在建構式中初始化。因此,建議final實體變數應該在建構式中初始化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/466388.html
上一篇:映射包含物件的陣列
