第三章JAVA高级特性反射

知识点总结

如何获取.Class文件对象

1, 通过Object类 getClass()方法获取 Class对象

2, 通过类名.class 方式 获取 Class对象

3, 通过反射的方式, Class.forName(String classname) 获取Class对象

public static Class<?> forName(String className)throws ClassNotFoundException

返回与带有给定字符串名的类或接口相关联的 Class 对象

 

通过反射, 获取类中的构造方法,并完成对象的创建

获取指定的构造方法

public Constructor<T> getConstructor(Class<?>... parameterTypes)

获取指定的public修饰的构造方法

public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)

获取指定的构造方法,包含私有的

获取所有的构造方法

public Constructor<?>[] getConstructors() 获取所有的public 修饰的构造方法

public Constructor<?>[] getDeclaredConstructors() 获取所有的构造方法,包含私有的

 

通过反射, 获取类中的构造方法,并完成对象的创建

步骤:

   1,获取字节码文件对象

   2,通过字节码文件对象 ,获取到指定的构造方法

   getConstructor(参数);

   3,通过构造方法,创建对象

   public T newInstance(Object... initargs)

 

私有构造方法,创建对象

1,获取字节码文件对象

2,通过字节码文件对象 ,获取到指定的构造方法

   getDeclaredConstructor (参数);

3,暴力访问

   con.setAccessible(true);

4,通过构造方法,创建对象

   public T newInstance(Object... initargs)

 

通过反射,获取Class文件中的方法

   获取指定的方法

   public Method getMethod(String name, Class<?>... parameterTypes)

   获取指定的public方法

   public Method getDeclaredMethod(String name, Class<?>... parameterTypes)

   获取指定的任意方法,包含私有的

   获取所有的方法

   public Method[] getMethods() 获取本类与父类中所有public 修饰的方法

   ublic Method[] getDeclaredMethods()获取本类中所有的方法,包含私有的

 

通过反射,调用方法

   步骤:

   1,获取Class对象

   2,获取构造方法,创建对象

   3,获取指定的public方法

   4,执行方法

   public Object invoke(Object obj, Object... args)

 

私有方法的调用:

 1,获取Class对象

 2,获取构造方法,创建对象

 3,获取指定的private方法

 4,开启暴力访问

  m5.setAccessible(true);

 5,执行方法

  public Object invoke(Object obj, Object... args)

 

通过反射,获取成员变量(字段)

   获取指定的成员变量

    public Field getField(String name) 获取public修饰的成员变量

    public Field getDeclaredField(String name) 获取任意的成员变量,包含私有

   获取所有的成员变量

    public Field[] getFields() 获取所有public修饰的成员变量

    public Field[] getDeclaredFields() 获取司所有的成员变量,包含私有

 

通过反射,获取成员 变量,并赋值使用

   步骤:

   1,获取字节码文件对象

   2,获取构造方法,创建对象

   3,获取指定的成员变量

   4,对成员变量赋值\获取值操作

   public void set(Object obj,  Object value) 赋值

   public Object get(Object obj) 获取值

 

私有成员变量的使用

    步骤:

   1,获取字节码文件对象

   2,获取构造方法,创建对象

   3,获取指定的成员变量

   4,开启暴力访问

   5,对成员变量赋值\获取值操作

   public void set(Object obj,  Object value) 赋值

   public Object get(Object obj) 获取值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值