反射的五大核心类

反射的五大核心类

一、反射与父类。

1、反射与父类
1.取得父类包名称 getPackage()
2.取得父类的Class对象 getSuperclass()
3.取得实现的所有分类接口 getInterfaces():返回值为数组
```

二、反射与构造方法——Constructor

1.取得指定参数的构造方法    
getConstructor():返回值为 Constructor,根据方法名及参数取得指定构造方法,权限为public,若指定名称的方法,在本类中没有,就继续查找父类
getDeclaredConstructor() :返回值为 Constructor,只在本类中(不查找父类)查找指定名称及参数类型的构造方法,与权限无关
2.取得类中所有构造
getConstructors(): 只能取得本类及父类中访问权限为public的所有构造方法
getDeclaredConstructors() : 能取得本类中所有权限的所有构造方法
3.对象实例化
newInstance():通过Constructor类创造对象实例化,根据类取得参数的实例化对象

三、 反射与普通方法 ——Method

1.取得全部普通方法

getMethods():取得本类及父类中所有权限为public的普通方法

getDeclaredMethods():取得本类中的所有普通方法,无关权限
2.取得指定普通方法
getMethod():返回值为Method,根据方法名及参数取得指定普通方法,权限为public,若指定名称的方法,在本类中没有,就继续查找父类

getDeclaredMethod():返回值为Method,同上 getDeclaredConstructor() ,只不过,只在本类中查找指定名称及参数类型的普通方法,与权限无关
3.调用拿到普通方法
invoke():通过反射调用拿到Method方法

四、反射与类中属性—— Field

1.取得类中全部属性
getFields():同上 getMethods() ,先从本类中查找,在从父类中查找,权限为public,且全局变量final修饰的属性也可以找到
getDeclaredFields():同上getDeclaredConstructors(),只在本类中查找,与权限无关
2.取得类中指定名称属性
getField():返回值为Field,同上getMethod(),根据方法名及参数取得指定属性,权限为public,若指定名称的属性,在本类中没有,就继续查找父类
getDeclaredFields():返回值为Field,同上getDeclaredConstructor(),只不过,只在本类中查找指定名称的属性,与权限无关
3.取得属性类型
getType()
4.动态破坏封装性
setAccessible():不是Field单独具备的,Method和Constructor也有

五、反射与注解

1.取得全部注解:getAnnotations(),返回值为Annotation[]数组
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值