黑马程序员技术交流社区

标题: 反射的问题 [打印本页]

作者: mulua    时间: 2013-7-3 09:32
标题: 反射的问题
  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. }

复制代码

作者: mulua    时间: 2013-7-3 09:33
System.out.println(field.getType()==String.class);//为什么这里输出的结果是false呢,明明是字符串的
作者: 曹睿老师    时间: 2013-7-3 09:46
getFields()只能获取public修饰的Field,ReflectPoint中满足条件的只有一个。
作者: mulua    时间: 2013-7-3 09:50
哦   明白了  谢谢
作者: liujkh123    时间: 2013-7-3 11:20
本帖最后由 liujkh123 于 2013-7-3 11:22 编辑

楼主,你这一段代码直接洋洋洒洒的贴出来,也不说是什么问题,人家怎么知道哪里出问题了。还要把程序复过来运行一遍,然后可能会出现一个问题,但是不是你所问的问题谁也不知道的,所以以后问问题最好把问题描述下。虽然你在代码里边写出了问题,但是一般的习惯还是喜欢先看代码外边有没有问题描述,如果只看到一对代码,还是比较头疼的。

作者: Just_Only    时间: 2013-7-3 11:29
看帖子已解决,那么我把帖子改成已解决,如果还没有解决,请联系我。。。
作者: Just_Only    时间: 2013-7-3 11:30
liujkh123 发表于 2013-7-3 11:20
楼主,你这一段代码直接洋洋洒洒的贴出来,也不说是什么问题,人家怎么知道哪里出问题了。还要把程序复过来 ...

问题在沙发哪儿。。。
作者: liujkh123    时间: 2013-7-3 11:36
Just_Only 发表于 2013-7-3 11:30
问题在沙发哪儿。。。

嗯 看到了,在代码里边也有写出来,越来越觉得注释非常重要了,要是看一大串别人的代码,还一个注释都没有的话,那是非常痛苦的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2