java反射 创建对象的方法,JAVA 反射 常用方法的示例 详解

什么是Java 反射?

就是正在运行,动态获取这个类的信息。

反射机制的作用?

1.反编译  .class 文件到 .java 文件

2.通过反射机制 访问对象的构造方法,方法,属性等。

如何通过反射获取类?

这里又三种方法,可以通过反射动态获取类。

第一种:

dbe14794ff29d213a6f9b71678997baf.png

第二种:

c20e3b63fa988d46fc934ca93c0faf74.png

第三种:

1ad38e390267a0379fc5536259687daf.png

这三种有什么区别?

总结:第一种通过forName() 方法 执行静态块,不执行动态块

第二种通过.class 方法  不执行静态块和动态块

第三种:需要创建对象,静态块,动态块都会执行

注意:静态块 类只加载一次,如果已经加载则不会重复加载,动态块,每次new 对象都会执行。

效果如图:

第一种:

29ae0b264296ed6e9c6c3bdbbcbbf45f.png

790b684accf4df900393fd3bc20698c0.png

第二种:

b9b8ec1c9544b0fea304b95b92b50429.png

第三种:

8c48136bf61bb24d37637124a231296f.png

java反射创建对象?

如何创建对象?

通过实例化构造函数来创建对象。

通过反射创建对象

1.实例化 无参 构造函数

3279d3ac1a1540fd2adb802c8b131140.png

2.实例化有参构造函数

ce6e0cb091b17d672f2e395961194573.png

通过反射获取方法,属性等API

getDeclaredMethods() :获取该类的所有方法

getReturnType() :获取该类方法的返回值

getParameterTypes() :获取该类方法传入参数

getDeclaredFields() :获取该类所有字段

setAccessible :允许访问私有成员

这里都是获取改类的?那么如何获取父类的呢?

通过 子类.getSuperclass() 获取父类对象

getDeclaredMethods 获取该类的所有方法

167c995bc7cc14938817167239288b76.png

getReturnType()获取方法的返回值

c020b2c0d71daf4cf403dc75f3e5957c.png

getParameterTypes() 获取该类方法的传入参数类型

53a8cb8cab605c6399c72c355c77e162.png

getDeclaredFields() 可以访问变量,注意这里只能访问公共成员变量私有变量是访问不到的

364da25064cdbcb9585e899820fb98fc.png

6d74e5f5c3bb307844adf0a8f58682fb.png

54ee6cbf43f3d432c437e90311bea36a.png

setAccessible  设置可以访问私有成员变量

17adc6c27e50cb231260823d3fc94c47.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值