A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© quan23355 中级黑马   /  2013-12-3 22:37  /  1527 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 quan23355 于 2013-12-4 10:36 编辑

张老师的高新技术视频中讲到BeanUtils工具操作JavaBean,代码如下:
  1. public class ReflectPoint {
  2.         private Date birthday = new Date();//创建Data对象,Data类可以当作javaBean类,Data中有setTime方法。
  3.         
  4.         private int x;
  5.         public int y;
  6.         
  7.         public ReflectPoint(int x, int y) {
  8.                 super();
  9.                 this.x = x;
  10.                 this.y = y;
  11.         }
  12.         
  13.         public int getX() {
  14.                 return x;
  15.         }
  16.         public void setX(int x) {
  17.                 this.x = x;
  18.         }
  19.         public int getY() {
  20.                 return y;
  21.         }
  22.         public void setY(int y) {
  23.                 this.y = y;
  24.         }
  25.         public Date getBirthday() {
  26.                 return birthday;
  27.         }
  28.         public void setBirthday(Date birthday) {
  29.                 this.birthday = birthday;
  30.         }
  31. }

  32. public class IntroSpectorTest
  33. {
  34.         public static void main(String[] args) throws Exception
  35.         {
  36.                         ReflectPoint pt1 = new ReflectPoint(3,5);//创建javaBean类对象
  37.                         System.out.println(BeanUtils.getProperty(pt1, "x")); //获取pt1对象javaBean属性x的值,BeanUtils是以字符串的形式操作javaBean的。打印3.
  38.                         System.out.println(BeanUtils.getProperty(pt1, "x").getClass().getName());//打印java.lang.String,”x”是字符串类型
  39.                         BeanUtils.setProperty(pt1, "x", "9");//将pt1对象的x值设置为9.
  40.                         System.out.println(pt1.getX()); //打印9
  41.                         /*
  42.                         java7的新特性
  43.                         //map集合可以和javaBean相互转换,BeanUtils提供了转换的方式,map集合中的键相当于javaBean中的属性。因此BeanUtils可以操作map集合
  44.                         //Map map = {name:"zxx",age:18}; // java7的新特性,以键值对的形式直接加进map集合中。即name键的值为”zxx”,age键的值为18.
  45.                         BeanUtils.setProperty(map, "name", "lhm");// BeanUtils设置map集合name键的值为”lhm”
  46.                         */
  47.                         BeanUtils.setProperty(pt1, "birthday.time", "111");
  48.                         System.out.println(BeanUtils.getProperty(pt1, "birthday.time"));
  49.                         PropertyUtils.setProperty(pt1, "x", 9);// PropertyUtils是以属性本身的类型来操作javaBean
  50.                         System.out.println(PropertyUtils.getProperty(pt1,"x").getClass().getName());//Integer
  51.          }
  52. }
复制代码
问题就在BeanUtils.getProperty(pt1, "birthday.time"),到这糊涂了,其中的birthday.time该怎么理解呢?


评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
狼王 + 1 + 3 赞一个!

查看全部评分

2 个回复

倒序浏览
猜测是birthday中的time属性吧,就像Person中的name属性一样,BeanUtil支持级联
回复 使用道具 举报
BeanUtils.getProperty(pt1, "birthday.time")//birthday是Date类型的对象,time是Date类型下的一个属性,可以理解为通过一个Date类型的对象获得time属性,而BeanUtils支持属性层级的连接
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马