黑马程序员_第六天_高新技术之理解对JavaBean的内省操作

时间:2023-02-18 15:05:59

 ---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------

public class Point{

    int x;
    int y;
    public void setX(){
       this.x = x;
    }
    public int getX(){
       return x;
    }
    public void setY(){
       this.y = y;
    }
    public int getY(){
       return y;
    }
}这是我所接触过的最简单也是最基本的JavaBean。视频中高新技术这块所说的复杂内省操作是我没有做过的。
ReflectPoint pt1 = new ReflectPoint(3,5);
String propertyName="x";
PropertyDescriptor pd = new PropertyDescriptor(propertyName,pt1.getClass());
Method methodGetX = pd.getReadMethod();
Object retVal = methodGetX.invoke(pt1);
System.out.println(retVal);
这段代码介绍了属性描述符,通过上一节课的反射调用方法获取具体的属性值。
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;
    }
}
return retVal;
        上面代码是用循环调用的方式完成了看似复杂的内省操作。 学完了视频后,给我感觉真的有点难理解,可是既然是高新技术,就要求我们和基础开发不一样的层次。我想还是要坚持着把它们学会。黑马程序员_第六天_高新技术之理解对JavaBean的内省操作

---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------详细请查看:<a href="http://edu.csdn.net/heima" target="blank">http://edu.csdn.net/heima</a>