本帖最后由 戒爱 于 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); //打印结果没有成功修改,哪里出问题了?
- }
- }
复制代码
|