栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

java基础-反射机制

Java 更新时间:发布时间: 百科书网 趣学号

文章目录
  • 一、什么是反射?
  • 二、反射基础
    • 1.Class类
    • 2.类字节码
  • 三.反射的使用
    • 1.Class类对象的获取
    • 2.反射常用方法


一、什么是反射?

反射机制:允许我们在运行时发现和使用类的信息

反射就是把java类中的各种成分映射成一个个的Java对象
例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象。

二、反射基础 1.Class类

Class类,存在于JDK的java.lang包中,Class类的实例表示java应用运行时的类或接口
特点:
1.Class类是类的一种
2.手动编写的类被编译后会产生一个Class对象,其表示的是创建的类的类型信息,而且这个Class对象保存在同名.class的文件中(字节码文件)
3.每个通过关键字class标识的类,在内存中有且只有一个与之对应的Class对象来描述其类型信息,无论创建多少个实例对象,其依据的都是用一个Class对象。
4.Class类只存私有构造函数,因此对应Class对象只能有JVM创建和加载
5.Class类的对象作用是运行时提供或获得某个对象的类型信息

2.类字节码

计算机是不能直接运行java代码的,必须要先运行java虚拟机,再由java虚拟机运行编译后的java代码
java属于高级语言,计算机无法直接识别高级语言,必须先编译成计算机可以识别的字节码文件,jvm才能正确识别指令并运行
java间接编译成字节码文件,在通过不同平台的jvm来解释执行,达到一次编译,处处运行的效果
java字节码文件:8位字节为基础的一个二进制流文件

三.反射的使用 1.Class类对象的获取

1.根据类名获取class对象:类名.class
2.根据对象获取class对象:对象.getClass()
3.根据全限定类名获取class对象:Class.forName(全限定类名路径)

2.反射常用方法

1.Class类的方法
-forName():获取Class类的一个引用
-getName():获取全限定的类名
-getSimpleName():获取类名
-isInterface():判断是否为接口
-getFields():获取某个类所有公共(public)的字段
-getDeclaredFields:获取某个类自己声明的字段

2.Constructor类及其用法
-forName():返回与带有给定字符串名的类或接口相关联的 Class 对象。
-getConstructor():返回指定参数类型、具有public访问权限的构造函数对象
-getConstructors():返回所有具有public访问权限的构造函数的Constructor对象数组
-getDeclaredConstructor():返回指定参数类型、所有声明的(包括private)构造函数对象
-getDeclaredConstructor():返回所有声明的(包括private)构造函数对象
-newInstance():调用无参构造器创建此 Class 对象所表示的类的一个新实例。

3.Field类及其用法
-getDeclaredField():获取指定name名称的(包含private修饰的)字段,不包括继承的字段
-getDeclaredFields():获取Class对象所表示的类或接口的所有(包含private修饰的)字段,不包括继承的字段
-getField():获取指定name名称、具有public修饰的字段,包含继承字段
-getFields():获取修饰符为public的字段,包含继承字段

4.Method类及其用法
-getDeclaredMethod():返回一个指定参数的Method对象
-getMethods():返回一个包含某些 Method 对象的数组


转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/956498.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号