潍坊Java培训
达内潍坊中心

15265420612

热门课程

Java的反射机制的讲解

  • 时间:2017-04-20
  • 发布:潍坊java培训
  • 来源:互联网

    本文是对Java的反射机制的讲解,希望能够对您学习java有所帮助.

    一、可以打破对象的封装

    1. ①获得对象的Class对象(三个方法)

    a)使用Class类的静态方法 forName; Class.forName("java.lang.String");

    b)使用类的.class语法 Srting.class;

    c)使用对象的getClass方法 String s = "aa"; Class<?> cla = s.getClass();

    2. ①若想通过类的不带参数的构造方法来生成对象,我们有两种方式:

    a) 先获得 Class 对象,然后通过该 Class 对象的 newInstance()方法直接生成即可:

    Class<?> classType = String.class;

    Object obj = classType.newInstance();

    b) 先获得 Class 对象,然后通过该对象获得对应的 Constructor 对象,再通过该 Constructor

    对象的 newInstance()方法生成:

    Class<?> classType = Customer.class;

    Constructor cons = classType.getConstructor(new Class[]{});

    Object obj = cons.newInstance(new Object[]{});

    ② 若想通过类的带参数的构造方法生成对象,只能使用下面这一种方式:

    Class<?> classType = Customer.class;

    Constructor cons = classType.getConstructor(new Class[]{String.class, int.class});

    Object obj = cons.newInstance(new Object[]{"hello", 3});

    3.①获取对象的所有成员变量 通过Class对象的getDeclareFields(); 返一个Field[];

    获取指定的成员变量 通过Class对象的getDeclareField("name"); 返回field对象

    ②获取对象的所有方法通过Class对象的getDeclareMethods(); 返一个Method[];

    获取指定的方法通过Class对象的getDeclareMethod("name"); 返回fMethod对象

    4. setAccessible(booleanflag)

    Set the accessible flag for this object to the indicated boolean value.

    method.setAccessible(true);//压制Java的访问控制检查

    field.setAccessible(true);//压制Java的访问控制检查

上一篇:作为程序员你规划做好了吗?
下一篇:作为资深的程序员如何开始的呢?

第十一届达内英才添翼校企合作高峰论坛在贵阳召开

达内庆祝15周年华诞,帮助50万年青人成功就业

达内教育携手平安财险,让学员就业更有保障

达内教研副总裁刘涛出席Adobe公司ACA国际认证项目启动仪式

选择城市和中心
贵州省

广西省

海南省