你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
反射机制在应用程序中的应用(四)
 

如果要访问Custuner对象的name属性,可以调用getName()方法,但如果只有一个Customer对象实例和一个字符串“name”时,如何设置并获得Customer类属性“name”的值呢?当然还需要使用反射。下面的RefObject类提供可以获得与设置类实例属性的方法:

import java.lang.reflect.*;

public class RefObject {

  /**

   * 获取对象实例objpropertyName的属性值

   * @param obj - 对象类实例

   * @param propertyName - 属性名

   * @return - 属性值

   */

  public static Object getPropertyValue(Object obj, String propertyName) {

    Object result = null;

    Class c = obj.getClass();  //获得objClass对象

    try {

      Field f = c.getDeclaredField(propertyName);  //获得propertyName表示的属性实例

      f.setAccessible(true);   //设置private属性可以访问

      result = f.get(obj);  //获得属性值

    }

    catch (Exception e) {

      result = null;

    }

    return result;

  }

 

  /**

   * 设置对象实例objpropertyName属性值

   * @param obj - 对象类实例

   * @param propertyName - 属性名

   * @param propertyValue - 属性值

   */

  public static void setPropertyValue(Object obj, String propertyName, Object propertyValue) {

    Class cls = obj.getClass();

    try {

      Field f = cls.getDeclaredField(propertyName);

      f.setAccessible(true);

      f.set(obj, propertyValue);    //设置属性值

    }

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089