黑马程序员技术交流社区
标题:
关于JavaBean 的一个小问题,问题在注释中。谢谢。
[打印本页]
作者:
wyy666
时间:
2014-5-30 23:20
标题:
关于JavaBean 的一个小问题,问题在注释中。谢谢。
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
//获取Point类中的属性值,并设置。
public class PointTest {
public static void main(String[] args) throws Exception{
Point pt = new Point(3, 5);
String propertyName="x";
//获取x值。 如果想获取x的值,为什么不直接用pt.getX()呢?这样不是更方便吗?为什么要用下面这种方式呢?请教各位。
PropertyDescriptor pd = new PropertyDescriptor(propertyName,pt.getClass());
Method getMethod = pd.getReadMethod();
Object retVal = getMethod.invoke(pt);
复制代码
public class Point {
private int x;
private int y;
public Point(int x,int y){
this.x=x;
this.y=y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
作者:
Lin0411
时间:
2014-5-30 23:36
本帖最后由 Lin0411 于 2014-5-30 23:37 编辑
原因其实很简单,有时候是属性名是作为一个参数传入的,这时候就不能显示获得函数名并进行调用,而PropertyDescriptor根据JavaBean的函数命名规则对获取javaBean函数的方法进行了封装,这是就只要利用传进来的属性名就可以获得相应的javaBean的read和write方法,这样做最大的好处是提高了程序的扩展性,是程序的编写变得相当的灵活。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2