本帖最后由 戒爱 于 2014-3-12 12:23 编辑  
 
(反射)两个问题请指教:1、//此处获得元素为什么是field而不是fields[field],获取数组元素不是-->数组名[角标]吗?2、/打印结果没有成功修改,哪里出问题了? 
 
- import java.lang.reflect.*;
 
  
- enum Sex {
 
 -         MAN, WOMAN
 
 - }
 
  
- class Person {
 
 -         String name;
 
 -         Sex sex;
 
 -         public Person(String name, Sex sex){
 
 -                 this.name = name;
 
 -                 this.sex = sex;
 
 -         }
 
 -         public String toString() {
 
 -                 return this.name+"--"+this.sex;
 
 -         }
 
 - }
 
  
- public class Student{
 
 -         public static void main(String[] args) throws Exception {
 
 -                 Person p = new Person("zhangsan", Sex.MAN);
 
 -                 
 
 -                 Field[] fields = p.getClass().getFields();
 
 -                 for(Field field : fields){
 
 -                         //此处获得元素为什么是field而不是fields[field],获取数组元素不是-->数组名[角标]吗?
 
 -                         if(field.getType() == String.class){
 
 -                                 String oldValue = (String) field.get(p);
 
 -                                 String newValue = oldValue.replace('h', 'z');
 
 -                                 field.set(p, newValue);
 
 -                         }
 
 -                 }
 
 -                 System.out.println(p);        //打印结果没有成功修改,哪里出问题了?
 
 -         }
 
 - }
 
  复制代码 
 
 
 |