前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA 反射 常用方法的示例 详解

JAVA 反射 常用方法的示例 详解

作者头像
斯文的程序
发布2019-11-07 17:27:00
5230
发布2019-11-07 17:27:00
举报
文章被收录于专栏:带你回家带你回家

什么是Java 反射?

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

反射机制的作用?

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

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

如何通过反射获取类?

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

第一种:

第二种:

第三种:

这三种有什么区别?

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

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

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

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

效果如图:

第一种:

第二种:

第三种:

java反射创建对象?

如何创建对象?

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

通过反射创建对象

1.实例化 无参 构造函数

2.实例化有参构造函数

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

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

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

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

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

setAccessible :允许访问私有成员

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

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

getDeclaredMethods 获取该类的所有方法

getReturnType()获取方法的返回值

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档