好吧,我努力學習java的MVC模式,但我不明白下面的方法:MVC(Model View Controller);請給我解釋一下這個方法
protected void setModelProperty(String propertyName, Object newValue) {
for (AbstractModel model: registeredModels) {
try {
Method method = model.getClass().
getMethod("set"+propertyName, new Class[] {
newValue.getClass()
}
);
method.invoke(model, newValue);
} catch (Exception ex) {
// Handle exception
}
}
}
我不」明白:
Method method = model.getClass().
getMethod("set"+propertyName, new Class[] {
newValue.getClass()
}
);
所以在getMethod我們根據屬性檢索(setSomething)方法名稱,那麼下面的「thing」就是屬性值newValue,這個表達式是我根本不理解的奇特表達式。
new Class[]
< ---所以它是一個類的數組? 下一個{ newValue.getClass() }
< ----好的,通過調用方法獲取括號中的類名,但是分號呢?必須有一些我不明白的特殊結構,它看起來像一個班級,但是如果沒有分號,那肯定會有所不同......人們向我解釋這是什麼請求...
它沒有與MVC鏈接,但與自省/反射。你可以動態地查看和調用任何對象的方法。 – 2012-04-05 10:19:33