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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mulua 中级黑马   /  2013-7-3 09:32  /  1142 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package exercise;

  2. public class ReflectPoint {
  3.         public int x=1;
  4.         private int y= 2;
  5.         String str1="aabbcc";
  6.         String str2="aabbcc";
  7.         String str3="aabbcc";
  8.         public ReflectPoint(int x, int y, String str1, String str2, String str3) {
  9.                 super();
  10.                 this.x = x;
  11.                 this.y = y;
  12.                 this.str1 = str1;
  13.                 this.str2 = str2;
  14.                 this.str3 = str3;
  15.         }
  16.         @Override
  17.         public String toString() {
  18.                 return "ReflectPoint [x=" + x + ", y=" + y + ", str1=" + str1
  19.                                 + ", str2=" + str2 + ", str3=" + str3 + "]";
  20.         }
  21.        
  22. }









  23. <div class="blockcode"><blockquote>package exercise;

  24. import java.lang.reflect.Field;

  25. public class ReflectTest {
  26. public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {
  27.     ReflectPoint pt1=new ReflectPoint(0, 0, "oooiiiuuu", "pppoooiii", "oookkklll");
  28.     Field[] fields = pt1.getClass().getFields();
  29.     for(Field field : fields)
  30.     {
  31.         System.out.println(field.getType()==String.class);//为什么这里输出的结果是false呢,明明是字符串的
  32.    
  33.         if(field.getType()==String.class)
  34.         {
  35.             String valStr=(String)field.get(pt1);
  36.             String newStr=valStr.replace('p', 'b');
  37.             System.out.println(newStr);
  38.             field.set(pt1,newStr);
  39.             
  40.         }
  41.         
  42.     }
  43.    
  44.    
  45.    
  46.    
  47.    
  48.    
  49.     //System.out.println(pt1);
  50. }




  51. }

复制代码

评分

参与人数 1技术分 +2 收起 理由
Just_Only + 2 赞一个!

查看全部评分

7 个回复

倒序浏览
System.out.println(field.getType()==String.class);//为什么这里输出的结果是false呢,明明是字符串的
回复 使用道具 举报
getFields()只能获取public修饰的Field,ReflectPoint中满足条件的只有一个。

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1 大神出没

查看全部评分

回复 使用道具 举报
哦   明白了  谢谢
回复 使用道具 举报
本帖最后由 liujkh123 于 2013-7-3 11:22 编辑

楼主,你这一段代码直接洋洋洒洒的贴出来,也不说是什么问题,人家怎么知道哪里出问题了。还要把程序复过来运行一遍,然后可能会出现一个问题,但是不是你所问的问题谁也不知道的,所以以后问问题最好把问题描述下。虽然你在代码里边写出了问题,但是一般的习惯还是喜欢先看代码外边有没有问题描述,如果只看到一对代码,还是比较头疼的。
回复 使用道具 举报
看帖子已解决,那么我把帖子改成已解决,如果还没有解决,请联系我。。。
回复 使用道具 举报
liujkh123 发表于 2013-7-3 11:20
楼主,你这一段代码直接洋洋洒洒的贴出来,也不说是什么问题,人家怎么知道哪里出问题了。还要把程序复过来 ...

问题在沙发哪儿。。。
回复 使用道具 举报
Just_Only 发表于 2013-7-3 11:30
问题在沙发哪儿。。。

嗯 看到了,在代码里边也有写出来,越来越觉得注释非常重要了,要是看一大串别人的代码,还一个注释都没有的话,那是非常痛苦的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马