我聽過JavaBean的規則,其中第一條和主要規則是,對於每個JavaBean類,顯式的程序員應該提供公共的默認構造函數。 請任何人都可以解釋爲什麼我們需要對JavaBean提供默認的構造函數爲什麼公共構造函數應該在javabean類中提供
UPDATE:
請解釋清楚,爲什麼JVM不會是JavaBean提供默認的構造函數,以及如何JVM上提供默認的構造函數
反應我聽過JavaBean的規則,其中第一條和主要規則是,對於每個JavaBean類,顯式的程序員應該提供公共的默認構造函數。 請任何人都可以解釋爲什麼我們需要對JavaBean提供默認的構造函數爲什麼公共構造函數應該在javabean類中提供
UPDATE:
請解釋清楚,爲什麼JVM不會是JavaBean提供默認的構造函數,以及如何JVM上提供默認的構造函數
反應我heared的JavaBean的規則,其中第一和主要原則是,對於每一個JavaBean類明確程序員應該提供公共的默認構造函數。請任何人都可以解釋爲什麼我們需要爲JavaBean提供默認構造函數
JavaBean實例是通過反射調用no-arg構造函數創建的。所以有是這樣的構造函數。
請解釋清楚,爲什麼JVM不會是JavaBean提供默認的構造函數和JVM上提供默認的構造函數
JVM的將提供了一個JavaBean一個默認的構造如何反應,如果你有明確規定沒有構造函數。如果你做提供了一個構造函數,除了你用參數定義的參數外,你必須提供一個無參數構造函數。
根據我的經驗,這是爲了防止某人添加一個構造函數的參數,從而有效地刪除默認的構造函數。通過顯式實現更不可能發生的默認構造函數。
除非你調用有爭議的構造函數,否則jvm永遠不會調用有爭議的構造函數,即使有爭議的構造函數在類 – developer 2012-02-22 12:22:17
我們可能會添加一些其他的構造函數給我們的bean,它們帶有參數,如果我們的類中沒有包含Default構造函數,那麼其他的構造函數會影響它,從而使它不再是有效的bean。
這是什麼wikipedaia說Java Bean Wikipedia article
類必須有一個公共的默認構造函數(無參數)。這允許在編輯和激活框架中輕鬆實例化。
其實這是ESAY通過自省來實例化一個類,如果它得到一個默認的構造
getClass().getClassLoader().loadClass("mypackage.myclass").newInstance();
-1中定義它不是確切答案,請檢查,我已更新題。 – developer 2012-02-22 12:20:08
我懷疑這是對語法和生成的類之間的區別的誤解。
public class Alpha {
}
public class Beta {
public Beta() {}
}
Alpha
默認構造函數是隱式的;在Beta
它是明確的。根據JavaBean規範,它們都有默認的公共構造函數。
public class Gamma {
private final Type t;
public Gamma(Type t) {
this.t = t;
}
}
在另一方面,Gamma
因爲沒有公共的無參數的構造不符合要求。如果沒有關於如何填充構造函數的上下文,將無法實例化此對象。
問題已經存在。 http://stackoverflow.com/q/2291856/713414 – Jayy 2012-02-22 12:03:35