文档章节

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

jason_kiss
 jason_kiss
发布于 2017/08/31 11:54
字数 448
阅读 24
收藏 0

什么是Java 反射?

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

反射机制的作用?

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

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

如何通过反射获取类?

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

    第一种:

  

    第二种:

       

第三种:

   

这三种有什么区别?

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

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

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

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

效果如图:

    第一种:

    

   

第二种:

第三种:

java反射创建对象?

如何创建对象?

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

  通过反射创建对象

    1.实例化 无参 构造函数

   

    2.实例化有参构造函数

    

 

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

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

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

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

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

setAccessible :允许访问私有成员

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

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

getDeclaredMethods 获取该类的所有方法

getReturnType()获取方法的返回值

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

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

  

   

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

 

© 著作权归作者所有

共有 人打赏支持
jason_kiss
粉丝 12
博文 93
码字总数 52682
作品 0
浦东
程序员
私信 提问
Java基础之反射(非常重要)

反射是框架设计的灵魂 (使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码)) 一、反射的概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道...

Java-老刘
05/15
0
0
【Java学习路线】新手该如何一步步的学习 Java

新手该如何一步步的学习 Java? 如果真的想学Java,最好要循序渐进,有章有法的学习它! 今天小慕就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容。 首先,给大家分享一张以 企业...

Eddie_yang
11/15
131
0
Dubbo源码分析(7):Javassist字节码技术生成代理

Java动态编程的作用: 通过配置生成代码,减少重复编码和维护成本 我们常用到的动态特性主要是反射,在运行时查找对象属性、方法,修改作用域,通过方法名称调用方法等。在线的应用不会频繁使...

郑加威
09/28
0
0
Java程序员从笨鸟到菜鸟全部博客目录【2012年十一月七日更新】

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 大学上了一年半,接触java也一年半了,虽然中间也有其他东西的学习,但是还是以java为主路线,想想这一年半,...

长平狐
2012/11/12
103
0
Java中的反射|SquirrelNote

前言 本篇简介: 反射概述 反射具体功能实现 Android中的反射应用 一、反射(Reflection)概述 1.定义 是指在运行状态中,对于任意一个类,都能知道这个类的所有属性和方法;并且对于任何一个...

跳动的松鼠
2017/11/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Netty 简单服务器 (三)

经过对Netty的基础认识,设计模型的初步了解,来写个测试,试试手感 上篇也说到官方推荐我们使用主从线程池模型,那就选择这个模型进行操作 需要操作的步骤: 需要构建两个主从线程组 写一个服务器...

_大侠__
6分钟前
0
0
day02:管道符、shell及环境变量

1、管道符:"|" 用于将前一个指令的输出作为后一个指令的输入,且管道符后面跟的是命令(针对文档的操作):cat less head tail grep cut sort wc uniq tee tr split sed awk等) [root@localho...

芬野de博客
17分钟前
5
0
Kubernetes系列——Kubernetes 组件、对象(二)

一、Kubernetes 组件 介绍了Kubernetes集群所需的各种二进制组件。 Master 组件 Master组件提供集群的管理控制中心。Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一...

吴伟祥
26分钟前
8
0
Flink-数据流编程模型

1、抽象等级 Flink提供了不同级别的抽象来开发流/批处理应用程序。 1) 低层级的抽象 最低层次的抽象仅仅提供有状态流。它通过Process函数嵌入到DataStream API中。它允许用户自由地处理来自一...

liwei2000
44分钟前
6
0
Java开发Swing实战JFrame和JTabbedPane容器的用法详细解析

概述: 项目是一个桌面程序,涉及标签和按钮组件、布局管理器组件、面板组件、列表框和下拉框组件等组件,以及Swing事件处理机制。 下面先从最基础的界面开始。 /** * @author: lishuai * @...

金铭鼎IT教育
49分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部