Java 反射教程

简介: Java反射使得可以在运行时检查类,接口,字段和方法,而无需在编译时知道类名,方法等。也可以实例化新对象,调用方法并使用反射来获取/设置字段值。Java反射是相当强大的,可以是非常有用的。

Java反射使得可以在运行时检查类,接口,字段和方法,而无需在编译时知道类名,方法等。也可以实例化新对象,调用方法并使用反射来获取/设置字段值。

Java反射是相当强大的,可以是非常有用的。例如,Java Reflection可用于将JSON文件中的属性映射到Java对象中的getter / setter方法,如Jackson,GSON,Boon等。或者,Reflection可用于将JDBC ResultSet的列名映射到Java对象中的getter / setter方法。

本教程将深入Java反射。它将解释Java反射的基础知识,包括如何处理数组,注释,泛型和动态代理,以及动态类加载和重载。

它还将向您展示如何执行更具体的Java反射任务,例如读取类的所有getter方法,或者访问类的私有字段和方法。

这个Java反射教程也将清除一些关于什么泛型信息在运行时可用的混淆。有些人声称所有的仿制药信息在运行时都会丢失。这不是真的。
本教程介绍Java 8中的Java反射版本。

Java反射的例子

这是一个Java反射示例向您展示使用反射是什么样子:

Method[] methods = MyObject.class.getMethods();

for(Method method : methods){
    System.out.println("method = " + method.getName());
}

本示例从名为MyObject的类中获取Class对象。 使用类对象的例子获取该类中的方法的列表,迭代方法并打印出他们的名字。

详细对类的使用,请看后续本系列教程。

Java类对象

当使用Java反射时,起始点通常是一些Class对象,它们表示您想要通过反射来检查的某个Java类。 例如,要获得一个名为MyObject的类的Class对象,你可以写:

Class myObjectClass = MyObject.class;

现在您有一个MyObject类的Class对象的引用。

详细对方法的使用,请看后续本系列教程。Java反射 - 类对象

Methods and Fields 方法和字段

一旦你引用了表示某个类的Class对象,就可以访问该类的方法和字段。 下面是一个访问Java类的方法和字段的例子:

Class myObjectClass = MyObject.class;

Method[] methods = myObjectClass.getMethods();

Field[] fields   = myObjectClass.getFields();

一旦你有一个类的方法和领域的引用,你可以开始检查他们。 你可以获得方法和字段名称,他们采取什么参数等。你甚至可以通过这些方法和字段反射对象调用方法和获取/设置字段值。

这里只是给大家概括反射的大概功能。详情请看后文。Java反射 - 方法 Methods
Java反射 - 字段

项目代码:github链接

相关文章
|
20天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
7天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
20 2
|
6天前
|
存储 Java
[Java]反射
本文详细介绍了Java反射机制的基本概念、使用方法及其注意事项。首先解释了反射的定义和类加载过程,接着通过具体示例展示了如何使用反射获取和操作类的构造方法、方法和变量。文章还讨论了反射在类加载、内部类、父类成员访问等方面的特殊行为,并提供了通过反射跳过泛型检查的示例。最后,简要介绍了字面量和符号引用的概念。全文旨在帮助读者深入理解反射机制及其应用场景。
10 0
[Java]反射
|
14天前
|
Java 数据库连接 编译器
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
|
17天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
本系列教程笔记详细讲解了Kotlin语法,适合希望深入了解Kotlin的开发者。对于需要快速学习Kotlin的小伙伴,推荐查看“简洁”系列教程。本篇笔记重点介绍了Kotlin与Java混编的技巧,包括代码转换、类调用、ProGuard问题、Android库开发建议以及相互调用时的注意事项。
20 3
|
2月前
|
安全 Java 索引
Java——反射&枚举
本文介绍了Java反射机制及其应用,包括获取Class对象、构造方法、成员变量和成员方法。反射允许在运行时动态操作类和对象,例如创建对象、调用方法和访问字段。文章详细解释了不同方法的使用方式及其注意事项,并展示了如何通过反射获取类的各种信息。此外,还介绍了枚举类型的特点和使用方法,包括枚举的构造方法及其在反射中的特殊处理。
58 9
Java——反射&枚举
|
17天前
|
安全 Java 测试技术
🌟Java零基础-反射:从入门到精通
【10月更文挑战第4天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
18 2
|
19天前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
20 3
|
20天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
26天前
|
消息中间件 存储 JSON
rabbitmq基础教程(ui,java,springamqp)
本文提供了RabbitMQ的基础教程,包括如何使用UI创建队列和交换机、Java代码操作RabbitMQ、Spring AMQP进行消息发送和接收,以及如何使用不同的交换机类型(fanout、direct、topic)进行消息路由。
19 0
rabbitmq基础教程(ui,java,springamqp)