JavaBean:相當(dāng)于一種規(guī)范,通常只包含一些信息字段和存儲(chǔ)方法,該類只有一些屬性和針對(duì)該屬性的get、set方法。沒(méi)有功能性方法。例如下面的User類就是一個(gè)JavaBean。
public class User {
private String pname;
private String price;
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
}
內(nèi)省機(jī)制:通過(guò)反射的方式操作JavaBean的屬性。
1.創(chuàng)建PropertyDescriptor對(duì)象,傳入屬性和字節(jié)碼對(duì)象
PropertyDescriptor propertyDescriptor = new PropertyDescriptor(屬性名稱,類);
columnName為數(shù)據(jù)庫(kù)中一個(gè)表的某個(gè)列名,而User.class為User類的字節(jié)碼對(duì)象
PropertyDescriptor propertyDescriptor = new PropertyDescriptor(columnName,User.class);
2.獲取屬性的set方法
Method writeMethod = propertyDescriptor.getWriteMethod();
3.根據(jù)set方法設(shè)置屬性
writeMethod.invoke(對(duì)象,參數(shù));
4.獲取屬性的get方法
Method readMethod = propertyDescriptor.getReadMethod();
5.根據(jù)get方法獲取屬性值
Object invoke = readMethod.invoke(對(duì)像,參數(shù));