JavaBean

一、什么是JavaBean
Java类--->JavaBean
class Person
{
  private int x;
  public int getAge(){
    return x;
  }
  public void setAge(int age){
    this.x = age;
  }
}
属性名:
Age-->如果第二个字母是小写,则把第一个字母变小写的-->age
gettime-->time
getTime-->time
getCPU-->CPU

二、对JavaBean的简单内省操作
ReflectPoint pt1 = new ReflectPoint(3,5);
String propertyName = "x";
//"x"-->"X"-->"getX"-->MethodGetX-->
//get方法
PropertyDescriptor pd = new PropertyDescriptor(propertyName,pt1.getClass());
Method methodGetX = pd.getReadMethod();
Object retVal = methodGetX.invoke(pt1);
//set方法
PropertyDescriptor pd2 = new PropertyDescriptor(propertyName,pt1.getClass());
Method methodSetX = pd2.getWriteMethod();
methodSetX.invoke(pt1,value);

三、对JavaBean的复杂内省操作
ReflectPoint pt1 = new ReflectPoint(3,5);
String propertyName = "x";
//"x"-->"X"-->"getX"-->MethodGetX-->
//get方法
BeanInfo beanInfo =  Introspector.getBeanInfo(pt1.getClass());
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
Object retVal = null;
for(PropertyDescriptor pd : pds){
 if(pd.getName().equals(propertyName))
 {
  Method methodGetX = pd.getReadMethod();
  retVal = methodGetX.invoke(pt1);
  break;
 }
}

四、使用BeanUtils工具包操作JavaBean
1、build path引入beannutils包和logging包
2、使用方法
System.out.println(BeanUtils.getProperty(pt1, "x").getClass().getName());
//输出java.lang.String
BeanUtils.setProperty(pt1, "x", "9");
System.out.println(pt1.getX());
//输出9
/*
//java7的新特性
Map map = {name:"zxx",age:18};
BeanUtils.setProperty(map, "name", "lhm");
*/
BeanUtils.setProperty(pt1, "birthday.time", "111");
System.out.println(BeanUtils.getProperty(pt1, "birthday.time"));
//输出111  
PropertyUtils.setProperty(pt1, "x", 9);
System.out.println(PropertyUtils.getProperty(pt1, "x").getClass().getName());
//输出java.lang.Integer

你可能感兴趣的:(JAVA,object,string,logging,build,path,工具)