javabean
2014-01-27 23:23
417 查看
(1)内省(IntroSpector):主要是对JavaBean进行操作
(2)JavaBean:是一种特殊的Java类。这个类的名字要按照特殊规则的命名的。
例子:get和set方法
(3)一个类如果可以看做是JavaBean的话,那么这个JavaBean的属性不是通过成员变量的名字的到的,是根据方法来的。
Class Person{
private int x;
public void setAge(int age){this.x = age;}
public int getAge(){return x;}
}
如果将一个Person类看做是JavaBean的话,那么这个这个Person的属性不是x,而是age。
(4)属性名:名字第二个字母是小的,那么第一个字母也要变成小的。
名字第二个字母是大的,那么第二个字母不需要变化。
(5)利用内省操作javaBean
如果一个类可以看做是JavaBean,那么用JavaBean操作要比普通类操作好。
应用:传递对象的信息,这个对象被称为值对象。VO(Value Object)
public void InspectorForjavaBeanWithNotGood() throws Exception{
ReflectionPoint rp = new ReflectionPoint(1,2);
BeanInfo beaninfo = Introspector.getBeanInfo(rp.getClass());
PropertyDescriptor[] pds = beaninfo.getPropertyDescriptors();
for(PropertyDescriptor pd : pds){
if(pd.getName().equals("x")){
Method mtd = pd.getReadMethod();
Object obj = mtd.invoke(rp);
System.out.println(obj);
break;
}
}
}
(6)采用IntroSpector.getBeanInfo()得到BeanInfo。BeanInfo是将一个类看做JavaBean的话会是什么样子的。
public void InspectorForjavaBean() throws Exception{
ReflectionPoint rp = new ReflectionPoint(1,2);
//得到它的属性
//第二个字母是否是大写?第一个字母不变:第一个字母大写
//根据方法名,利用反射找到那个方法
//得到方法的返回值
PropertyDescriptor pd = new PropertyDescriptor("x",rp.getClass());
Method mtd = pd.getReadMethod();
Object obj = mtd.invoke(rp);
System.out.println(obj);
}
(7)利用工具类施行内省。Beanutils工具包。以jar包的形式。
(2)JavaBean:是一种特殊的Java类。这个类的名字要按照特殊规则的命名的。
例子:get和set方法
(3)一个类如果可以看做是JavaBean的话,那么这个JavaBean的属性不是通过成员变量的名字的到的,是根据方法来的。
Class Person{
private int x;
public void setAge(int age){this.x = age;}
public int getAge(){return x;}
}
如果将一个Person类看做是JavaBean的话,那么这个这个Person的属性不是x,而是age。
(4)属性名:名字第二个字母是小的,那么第一个字母也要变成小的。
名字第二个字母是大的,那么第二个字母不需要变化。
(5)利用内省操作javaBean
如果一个类可以看做是JavaBean,那么用JavaBean操作要比普通类操作好。
应用:传递对象的信息,这个对象被称为值对象。VO(Value Object)
public void InspectorForjavaBeanWithNotGood() throws Exception{
ReflectionPoint rp = new ReflectionPoint(1,2);
BeanInfo beaninfo = Introspector.getBeanInfo(rp.getClass());
PropertyDescriptor[] pds = beaninfo.getPropertyDescriptors();
for(PropertyDescriptor pd : pds){
if(pd.getName().equals("x")){
Method mtd = pd.getReadMethod();
Object obj = mtd.invoke(rp);
System.out.println(obj);
break;
}
}
}
(6)采用IntroSpector.getBeanInfo()得到BeanInfo。BeanInfo是将一个类看做JavaBean的话会是什么样子的。
public void InspectorForjavaBean() throws Exception{
ReflectionPoint rp = new ReflectionPoint(1,2);
//得到它的属性
//第二个字母是否是大写?第一个字母不变:第一个字母大写
//根据方法名,利用反射找到那个方法
//得到方法的返回值
PropertyDescriptor pd = new PropertyDescriptor("x",rp.getClass());
Method mtd = pd.getReadMethod();
Object obj = mtd.invoke(rp);
System.out.println(obj);
}
(7)利用工具类施行内省。Beanutils工具包。以jar包的形式。