Java反射机制---01

Java反射机制 课外01:获取一个文件的绝对路径 一、获取一个文件的绝对路径 方式一:New FileReader(“Name”); —— 这种方式的路径缺点是:移植性差,在IDEA中默认的当前路径是project的根。public class AboutPath { public static void main(String[] args) throws Exception{ // 这种方式的路径缺点是:移植性差,在IDEA中默认的当前路径是project的根。 // 这个代码假设离开了IDEA,换到了其它位置 阅读详情

反射机制是什么?

反射机制,个人认为就是通过反射这种方式,获取利用反射这个东西的自身的信息,对于程序来说,即能够在程序运行的时候获取自身的信息。在Java中,对于任意中的一个类,我们可以通过Java反射机制获取这个类的所有属性和方法,对于一个对象,我们可以通过Java反射机制调用这个对象的任意方法和属性,简单的来说,在java中只要给定类或者对象的名字,我们就可以通过反射机制来获得这个类或者这个对象的所有信息。

哪里用到了反射机制?

我认为在框架中,基本上都用到了反射机制,如果你自己要写一个框架的话,我认为你一定用到了反射机制,现在很多开源框架都已经封装好了,你基本上自己调用方法或者接口就可以了,不用你自己来写了,典型的有Hibernate,Spring等框架。记得学JDBC的时候,用过一段代码:
Class.forName("com.mysql.jdbc.Driver.class").newInstance();
但是,当时就知道那个是生成驱动对象的实例,也说了是利用反射的机制,但后面没怎么深究反射机制,直到后面工作时,才学了一点点反射的基础知识。其实,我们可以在xml或者properties文件中写好配置,然后在Java类中去解析xml或者properties中的内容,我们可以通过得到的字符串进行反射,得到某个类的Class的实例,这样的话,我们可以动态的配置一些东西,而不需要每次在代码中去new一个实例,以后要修改的话,直接取去修改配置文件即可,这样代码维护起来将会简单多了,再比如一些需求,你不能直接去new一个对象出来,因为你写这个接口的时候,你还不知道这个对象是什么,这样的话,你就可以通过反射机制来调用这个对象方法或者属性。

反射机制的优点和缺点

优点:运行时才绑定对象,体现出反射机制的灵活性,降低类与类之间的耦合性
            运行期判断任意一个对象所属的类
            运行时创建一个类的对象
            运行时判断任意一个类具有的成员变量和方法
            运行时调用一个对象的方法
缺点:性能问题,反射相当于一序列的解析,需要通过JVM做事情,所以性能要比直接创建差
            建议在业务中不要直接使用反射,因为反射是运行时才执行的,如果我们在一个对象中,操作错误比如传错了一个参数的值,导致出现一个运行时的bug,这样发现一个这样的bug很难,因为寻找一个运行时的bug比编译期的bug更难。

Java反射获取的信息

简便的说,就是类中有什么信息,反射就能获取什么信息,但是首先你需要知道这个类的名称。
通过传入的类的全名来创建Class的对象:
Class clazz = Class.forName(“className”);    注:className必须是类的全名,也就是应该包含包名,如:com.core.web.service.UserService
Class clazz = object.getClass();   注:object是传入的Object的参数如:
public void  reflectMethod(Object  object){
                ............       
}
Object  obj  = c.newInstance();   注:创建对象的实例

常使用的方法:
Class  clazz = object.getClass();
(以下的方法,是通过clazz直接调用)
获得构造函数的方法
Constructor  getConstrutor(Class[ ] params);  注:根据指定参数获得public构造器
Constructor[ ]  getConstructors();  注:获得public的所有构造器
Constructor getDeclaredConstructor(Class[ ] params);注:根据指定参数获得public和非public的构造器
Constructor[ ]  getDeclaredConstructors();  注:获得public和非public的所有构造器
获得类中方法的方法
Method  getMethod(String name,Class[ ] params); 注:根据方法名,参数类型获得方法
Method[ ] getMethods();  注:获得所有的public方法
Method  getDeclaredMethod(String name,Class[ ] params);注:根据方法名和参数类型,获得public和非public的方法
Method[ ]  getDeclaredMethods(); 注:获得所有的public和非public方法
获得类中属性的方法
Field  getField(String name); 注:根据变量名得到相应的public变量
Field[ ]  getFields();注:获得类中所有的public方法
Field  getDeclaredField(String  name); 注:根据方法名获得public和非public的变量
Field[ ]  getDeclaredFields();注:获得类中所欲的public和非public方法

【反射笔记01】Java基于反射机制实现给对象中的某些字段进行赋值 不知道你有没有在日常的开发工作中,遇到过这种情况,你的数据表中存在下面这些常见的字段:create_user_id,create_user_name,create_time,update_user_id,update_user_name,update_time,在Java工程中新增数据、修改数据的时候,你每次都要调用entity对象的setXxx()方法去给对象赋值,于是你就写出了下面这种代码: 阅读详情

相关推荐

RagFlow实战:如何用DeepDoc引擎高效处理扫描PDF文档(附完整代码解析)

本文详细解析了如何利用RagFlow的DeepDoc引擎高效处理扫描PDF文档。通过实战演示从环境搭建、PDF预处理、文本检测与识别,到布局分析与表格结构提取的完整流程,并提供了完整的代码实现。该方案超越了传统OCR,能输出保留原始版面信息的结构化数据,为构建高质量知识库提供了强大支持。

weixin_29245767的博客 300

01.Java反射机制

01.Java反射机制 1.基本概念 通常情况下编写代码都是固定的,无论运行多少次执行的结果也是固定的,在某些特殊场合中编写代码时不确定要创建什么类型的对象,也不确定要调用什么样的方法,这些都希望通过运行时传递的参数来决定,该机制叫做动态编程技术,也就是反射机制。 通俗来说,反射机制就是用于动态创建对象并且动态调用方法的机制。 目前主流的框架底层都是采用反射机制实现的。 如: Person p = new Person(); - 表示声明Person类型的引用指向Person类型的对象 p.show();

程序员阿红的博客 359

从法律文档到知识图谱

这里我们定义了两个 Pydantic 模型:Location 用于捕捉结构化的地址信息,包含可选的国家、州和地址字段;Party 用于表示合同参与方,包含必填的名称和可选的位置详情。字段描述通过告知 LLM 每个字段具体需要查找哪些信息,来辅助提取过程。"""包含结构化地址组件的位置信息。"""country: Optional[str] = Field(None, description="国家")

Anspire的博客 3030

java反射机制01 Class

1.Class类 通常先有类的完整路径,才能产生实例化对象;但是也可以通过实例化对象找到类的完整信息。 在Object类中 public final Class getClass() 常用方法: 1. public static Class<?> forName(String className) throws ClassNotFoundExcetion 传入完整的...

qq_30864125的博客 387

【Spreadsheet】香港规范结构设计电子表格库开发方案

深入理解香港本地规范特点和要求结合国际先进标准(Eurocode) 的技术内容考虑香港地理环境特殊性 (台风、地质等)建立完善的质量控制体系保持持续更新维护的能力。

hmywillstronger的博客 1361

MCGSPro动画部件实战:用文本分段实现智能报警提示(附工程文件)

本文详细介绍了在MCGSPro组态软件中,如何利用动画部件的文本分段功能,高效实现触摸屏上的智能报警提示。通过绑定整数变量作为索引,一个部件即可动态切换多种状态信息,解决了传统方法画面臃肿、维护繁琐的痛点。文章提供了从变量定义、部件配置到逻辑联动的完整实战教程,并分享了工程文件复用与性能优化技巧。

weixin_28347369的博客 167

01_Java反射机制概述

Java反射机制概述 Java Reflection Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可 以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看 到类的结构,所以,我们形象的称之为: ...

qq1075666462的博客 122

STM32G0——USB虚拟串口

STM32G0用cubeMX配置实现USB虚拟串口

阿昌 2320

Java反射机制 01:概述&应用

一、反射机制 反射机制的作用:通过Java语言中的反射机制可以操作字节码文件(代码片段、Class文件)。 —— 可以读和修改字节码文件 反射机制的相关类在java.lang.reflect.*包下。 二、反射机制相关的重要的类 java.lang.Class:代表整个字节码,代表一个类型。代表整个类。 java.lang.reflect.Method:代表字节码中的方法字节码。代表类中的方法。 java.lang.reflect.Constructor:代表字节码中的构造方法字节码。代表类中的构造

耳东er的博客 559

SFF-8654接口引脚定义全解析:从SAS到U.2的高速硬件连接核心

在高速数据存储与传输领域,接口标准是连接主机与存储设备、确保信号完整性与协议互通性的物理基础。其核心原理在于通过精确定义的物理引脚和电气特性,承载不同的高速串行通信协议,如SAS和PCIe。这类高密度连接器的技术价值在于以紧凑的形态支持多协议兼容与高速率传输,满足了企业级存储、高性能计算对带宽和可靠性的苛刻要求。典型的应用场景包括服务器硬盘背板连接、NVMe U.2固态硬盘直连以及外部存储扩展。本文聚焦于SFF-8654(亦称Mini SAS HD)这一关键接口,深入剖析其引脚定义、信号分区(如高速数据通道

weixin_29188043的博客 710

手把手教你学Simulink——基于自动驾驶辅助系统的场景实例:车道保持辅助系统(LKA)的仿真与实现

本文通过Simulink实例讲解车道保持辅助系统(LKA)的实现方法。首先介绍LKA从预警到主动控制的技术演进,阐述其系统架构、核心组件和工作原理。重点演示基于自行车模型的车辆横向动力学建模过程,以及使用线性二次调节器(LQR)设计横向控制器的详细步骤。教程包含四个仿真场景测试,分析关键指标如控制精度、舒适性和响应性。最后探讨LKA技术的发展方向,强调人机协同的安全理念。该实例为自动驾驶辅助系统开发提供了完整的Simulink实践方案。

MHD0815的博客 182

[Java] 反射机制 01

java程序的执行过程 ClassLoader 将编译好的 class 文件 load 到内存中的 codeSegment 代码段;运行环境找到 main 方法开始执行;运行过程中会有更多的 class 被 load 到内存 ClassLoader ClassLoader是类装载器,用于将class装载进内存。 URL getResource(S...

anchang7456的博客 103

笔试题-2023-加特兰-数字IC设计【纯净题目版】

笔试题-2023-加特兰-数字IC设计【纯净题目版】

w0shishabi的博客 2248

01_04_java 反射机制

前言 文章内容输出来源:拉勾教育Java就业训练营 上一阶段内容,java 网络编程 反射机制 基本概念 通常情况下编写代码都是固定的,无论运行多少次执行的结果也是固定的,在某些特殊场合中编写代码时不确定要创建什么类型的对象,也不确定要调用什么样的方法,这些都希望通过运行时传递的参数来决定,该机制叫做动态编程技术,也就是反射机制。 通俗来说,反射机制就是用于动态创建对象并且动态调用方法的机制。 目前主流的框架底层都是采用反射机制实现的。 如: Person p = new Person(); - 表示声明

weixin_41596178的博客 158

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java反射01-反射机制和Class对象

Java反射01-反射机制和Class对象 反射机制介绍 是啥? 1在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法 2对于任意一个对象,都能够调用它的任意一个方法 这种动态获取信息以及动态调用对象方法的功能就是Java 语言的反射机制。 怎么做到的? 把类的各个组成部分封装为对象(如把成员变量封装为Filed对象,成员方法封装为Method对象,构造方法封装为Constructor方法) 为了更深入的了解,我们先看下java类的加载过程。 1硬盘中的java源文件(xx.java)先编译为字

weixin_43885957的博客 504

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java反射机制-01天

Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。 一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#

526

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

01-18、JavaSE知识点总结_Java反射机制

JavaSE知识点总结Java反射机制概述理解Class类并获取Class实例类的加载与ClassLoader的理解创建运行时类的对象获取运行时类的完整结构调用运行时类的指定结构反射的应用:动态代理 Java反射机制概述 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完

马上要秃头的我 439

【Java教程】Day7-01 反射:Class和反射机制

每当JVM加载一个类时,都会创建一个对应的。

max202011161630的博客 409

[1-01-01].第87节:反射机制 - Java反射机制的应用场景

F-T-er 440

Java反射机制01_反射的概念以及获取字节码信息 的四种方式

Java反射机制01-反射的概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象, 都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 在编译后产生字节码文件的时候,类加载器子系统通过二进制字节流,负责从文件系统加载class文件。 在执行程序(java.exe)时候,将字节码文件读入JVM中—>这个过程叫做类的加载。然后在内存中对应创建一个java.lang.Class对象–>这个对象会被放

qq_51550750的博客 614

CC00121.bigdatajava——|Java&反射机制.V01|——|Java.v01|反射机制|概念|

一、[反射机制的基本概念] ### --- 基本概念 ——> 通常情况下编写代码都是固定的,无论运行多少次执行的结果也是固定的, ——> 在某些特殊场合中编写代码时不确定要创建什么类型的对象, ——> 也不确定要调用什么样的方法,这些都希望通过运行时传递的参数来决定, ——> 该机制叫做动态编程技术,...

yanqi_vip 96

spring java反射机制_番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象...

转载请注明来源 赖赖的博客前景概要在 01 走进Spring,Context、Bean和IoC 中,我们看到了强大的Spring通过ApplicationContext实现了bean工厂(也就是对象工厂),那究竟是怎么实现的呢,本次给大家写一个小Demo展现其原理;Spring bean的调用方式和配置方式(详情可以查看 01 走进Spring,Context、Bean和IoC 这一课程)此处仅贴...

weixin_42525369的博客 243

16---java反射机制01(认识Class)

Class类:   正常情况下,必须知道一个类的完整路径之后才可以实例化一个对象;   但是在java中也允许通过一个对象来找到其所在的类的信息,那么这实际上就是Class类的功能;    class Demo01{    }    public class Demo{     public static void main(String args[]){      Demo01 d

bzuld的专栏 286

番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象

转载请注明来源 赖赖的博客前景概要在 01 走进Spring,Context、Bean和IoC 中,我们看到了强大的Spring通过ApplicationContext实现了bean工厂(也就是对象工厂),那究竟是怎么实现的呢,本次给大家写一个小Demo展现其原理;Spring bean的调用方式和配置方式(详情可以查看 01 走进Spring,Context、Bean和IoC 这一课程)此处仅贴出

赖赖的博客 1423

学习笔记(01):Java8编程实战-反射机制(实例化Class类对象)

Java一直作为优秀的编程语言活跃于软件开发行业,掌握Java不仅是一件兴奋的事,更是一把可以帮助你轻松进入软件行业大门的一把金钥匙,本套课程将为读者讲解Java8的所有核心技术知识,一共240集的Java8开发课程,全网独一无二的教学视频资料,你还等什么?赶紧来学吧!官方QQ群:612148723。...

haohsq的博客 340
上一篇: SpringMVC学习---01
下一篇: String与new String()的区别
wang854837173
博客等级 码龄14年 6粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值