黑马程序员技术交流社区

标题: 关于Object反射时,其中属性名为class的问题! [打印本页]

作者: 践行渐远    时间: 2014-11-5 13:15
标题: 关于Object反射时,其中属性名为class的问题!
本帖最后由 践行渐远 于 2014-11-5 13:18 编辑

在反射时,将一个Object作为javaBean,通过内省可以获得Object类中,有一个名称为class属性。通过以下方式可以获取。
  1. import java.beans.BeanInfo;
  2. import java.beans.Introspector;
  3. import java.beans.PropertyDescriptor;
  4. import java.lang.reflect.Method;
  5. public class test {
  6.          /**
  7.           * @pam args
  8.           */
  9.     <span style="line-height: 2.2em;">   </span><span style="line-height: 2.2em;"> </span><span style="line-height: 2.2em;">public static void main(String[] args) throws Exception{ </span>
复制代码
----------------------------------------------
然而,查看Object.class源文件,却没有发现 class属性名。
由于其他所有的类都默认继承Object类,这就意味着当对一个JavaBean类进行内省操作,并设置其不同属性的值时,就需要排除“class”.equals(name)的情况。
例如以下题目:
* Test:存在一个JavaBean,它包含以下几种可能的属性:
*            1:boolean/Boolean
*          2:int/Integer
*          3:String
*          4:double/Double
* 属性名未知,现在要给这些属性设置默认值,以下是要求的默认值:
*          String类型的默认值为字符串 www.itheima.com
*          int/Integer类型的默认值为100
*          boolean/Boolean类型的默认值为true
*          double/Double的默认值为0.01D.
* 只需要设置带有getXxx/isXxx/setXxx方法的属性,非JavaBean属性不设置,请用代码实现




















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