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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 段金福 中级黑马   /  2014-9-14 11:44  /  624 人查看  /  8 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. Field fdd[] = d.getClass().getFields();      // 取出所有 Field 成员变量  成为数组
  2.                
  3.                 System.out.println("数组长度:"+fdd.length);
  4.                 for(Field f:fdd)
  5.                 {
  6.                         if(f.getType() == String.class);                // getType  返回对象所属类型字节码          和 String 一样 则是String 类型
  7.                         {
  8. //                                String OldStrring  = (String) f.get(d);                                        // 获取对象 d 的  各个String变量值
  9. //                                String NewString  = OldStrring.replace('d', 'z');                // 将字符 d 改成 z
  10. //                                f.set(d, OldStrring);                                                                        // 将改变之后的字符串给  对象的变量
  11.                                 System.out.println(1);
  12.                         }
  13.                        
  14.                 }
复制代码


问题  对象d是Demo 类型 ,Demo类 只有3个pubilc String 属性。还有2个int 属性 ,可是这个for循环里面执行了4次,

8 个回复

倒序浏览
里面有私有属性吧?
回复 使用道具 举报
舍我其谁 发表于 2014-9-14 11:58
里面有私有属性吧?

是有一个私有,但是我打印出来 不是私有的那个值 ,是public 的int ,
回复 使用道具 举报
段金福 发表于 2014-9-14 12:03
是有一个私有,但是我打印出来 不是私有的那个值 ,是public 的int ,

私有的用这个方法是得不到的
回复 使用道具 举报
舍我其谁 发表于 2014-9-14 12:06
私有的用这个方法是得不到的

我的问题是 :if(f.getType() == String.class);     public  int  怎么也进来了 ,
回复 使用道具 举报
段金福 发表于 2014-9-14 12:08
我的问题是 :if(f.getType() == String.class);     public  int  怎么也进来了 ,

int  那 值能打印出来?没遇到过呢,我试一下
回复 使用道具 举报
舍我其谁 发表于 2014-9-14 12:13
int  那 值能打印出来?没遇到过呢,我试一下

public int  确实进来了 ,打印出来了 :L   私有是肯定进不来的,因为没进数组。
回复 使用道具 举报
段金福 发表于 2014-9-14 12:18
public int  确实进来了 ,打印出来了    私有是肯定进不来的,因为没进数组。 ...

好吧 ,你  if   后面多写了一个分号,看的我眼睛痛了!
回复 使用道具 举报
舍我其谁 发表于 2014-9-14 13:00
好吧 ,你  if   后面多写了一个分号,看的我眼睛痛了!

我了个擦擦擦擦,感谢 {:3_46:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马