java反射机制实战(3) - Method

别再瞎猜了!三角形接法PMSM的相电流到底怎么算?实测线电流转换公式与避坑指南 本文深入解析三角形接法永磁同步电机(PMSM)在FOC控制中的相电流计算误区,提供实测线电流转换公式与避坑指南。针对矢量控制系统中常见的√3换算错误,详细阐述正确的电流重构算法、硬件采样要点及软件优化技巧,帮助工程师实现精确控制并避免电机损坏。 阅读详情

反射获取对象的所有方法,并且打印方法名

public class ReflectionTest2 {
    public static void main(String[] args) throws Exception {
        ReflectionModel model = new ReflectionModel();
        Class<? extends ReflectionModel> clazz = model.getClass();

        // 获取本类以及父类public方法
        Method[] methods = clazz.getMethods();
        for (Method m : methods) {
            System.out.println(m.getName());
        }

        System.out.println("===============================");

        // 获取本类定义的所有方法
        Method[] declaredMethods = clazz.getDeclaredMethods();
        for (Method m : declaredMethods) {
            System.out.println(m.getName());
        }
    }
}
打印结果:
toString
getCount
getSql
wait
wait
wait
equals
hashCode
getClass
notify
notifyAll
===============================
toString
getCount
getSql
setSql
setCount

 打印Method的其他方法,可获取返回值、异常集合。generic的方法返回Type类型而不是Class

System.out.println(m.getName() + " -> returnType: " + m.getReturnType());
System.out.println(m.getName() + " ->> genericReturnType: " + m.getGenericReturnType().getTypeName());
// 获取方法异常,返回class
Class<?>[] exceptionTypes = m.getExceptionTypes();
for (Class<?> exceptionType : exceptionTypes) {
    System.out.println(m.getName() + " -> exceptionType: " + exceptionType.getName());
}
// 获取方法异常,返回Type类型数组
Type[] genericExceptionTypes = m.getGenericExceptionTypes();
for (Type type : genericExceptionTypes) {
    System.out.println(m.getName() + " ->> genericExceptionTypes: " + type.getTypeName());
}
打印结果:
toString
toString -> returnType: class java.lang.String
toString ->> genericReturnType: java.lang.String
getCount
getCount -> returnType: class java.lang.Integer
getCount ->> genericReturnType: java.lang.Integer
getCount -> exceptionType: java.lang.RuntimeException
getCount ->> genericExceptionTypes: java.lang.RuntimeException
getSql
getSql -> returnType: class java.lang.String
getSql ->> genericReturnType: java.lang.String
setSql
setSql -> returnType: void
setSql ->> genericReturnType: void
setCount
setCount -> returnType: void
setCount ->> genericReturnType: void

得到Method对象后,接下来就可以调用对象的方法

// 调用private setCount
Method setCountMethod = clazz.getDeclaredMethod("setCount", Integer.class);
setCountMethod.setAccessible(true);
setCountMethod.invoke(model, 10086);

// 调用public getCount
Method getCountMethod = clazz.getMethod("getCount");
Object invoke = getCountMethod.invoke(model);
System.out.println(invoke);

// 调用private static setCount2
Method setCount2Method = clazz.getDeclaredMethod("setCount2", Integer.class);
setCount2Method.setAccessible(true);
setCount2Method.invoke(model, 10000);
打印结果:
10086
10000

如果私有方法没有设置setAccessible(true) 则会报错

Exception in thread "main" java.lang.IllegalAccessException: Class com.pss.ReflectionTest2 can not access a member of class com.pss.model.ReflectionModel with modifiers "private static"
	at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:102)
	at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:296)
	at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:288)
	at java.lang.reflect.Method.invoke(Method.java:491)
	at com.pss.ReflectionTest2.main(ReflectionTest2.java:58)

 

Python爬虫实战:使用最新技术爬取GitHub Trending项目 本文将详细介绍如何使用Python最新技术栈构建一个高效的GitHub Trending爬虫。我们将使用异步请求库httpx、HTML解析库parsel、数据存储方案以及反反爬技术,完整实现一个能够稳定获取GitHub Trending数据的爬虫系统。文章包含5000余字详细教程,从环境搭建到代码实现,再到数据处理和存储,最后部署运行,提供全方位指导。GitHub Trending页面展示了GitHub上当前最受欢迎的项目,对于开发者了解技术趋势、发现优秀项目非常有价值。 阅读详情

相关推荐

数据库原理及应用教程课后习题答案 第4版 微课版 陈志泊主编

数据库原理及应用教程 第4版 微课版 陈志泊主编 习题参考答案

共同学习,心怀感激。 5万+

[反射]获取运行时类的方法结构及其内部结构

/* 获取运行时类的方法结构 */ public class MethodTest { @Test public void test1(){ Class clazz = Person1.class; //getMethods():获取当前运行时类及其所有父类中声明为public权限的方法 Method[] methods = clazz.getMethods(); for (Method m : methods){ .

self 145

Oasys安装教程

在基环境下执行然后去 C:\Users.condarc打开 .condarc这个文件 删除干净里面的东西。

weixin_44254178的博客 1295

java根据方法出入参自动生成json示例

java代码主要根据反射,为出入参为引用属性,时设置默认值。最后由fastjson 转为json字符串。

qq_42553504的博客 1350

告别CANoe?手把手教你用Python+PCAN搭建汽车诊断脚本(附完整代码)

本文详细介绍了如何利用Python和PCAN硬件搭建高性价比的汽车诊断自动化方案,替代昂贵的CANoe工具。通过开源库python-can和udsoncan实现UDS诊断协议,涵盖硬件选择、环境配置、核心功能实现及性能优化,附完整代码示例,助力开发者快速构建诊断脚本。

weixin_42551227的博客 373

飞塔防火墙和paloalto防火墙构建ipsec

一、配置fortigate防火墙1.防火墙配置上网功能1.1配置fortigate的wan1接口IP为100.100.100.2/24VLAN交换internal,IP地址为192.168.156.99/24。开启DHCP分配IP地址范围为192.168.156.110-192.168.156.2101.2配置访问互联网的缺省路由1.3配置访问互联网的安全策略2.配置与Paloalto防火墙的IPSECVPN。

weixin_44675999的博客 3738

Java反射应用

1. 获取一个Class对象 其中Class<?> 和Class<? extends Object>等效,可以接收所有java类 //方法一:新建一个对象,调用它的getClass()方法 Object object = new Object(); Class<? extends Object> c1 = object.getClass(); //方法二:直接调...

a_blue_ice的博客 330

linux和mac安装+配置circos(

一定要下载完这两个包,GD才会work,要不然会报错,且-modules显示也是fail。官网的教程说的很明白,但是很多包都已经过时了需要在网上找。一般来讲,所有包的安装都不会太困难,除了GD。1.是因为官网给的链接下出来的tgz无法解压。2.我的电脑安装后GD照样是fail的。,进入这个地址下一个.tgz。第二点的原因在于,官网的情况。,进入这个地址,按部就班。GD安装困难有以下几点。搞了一天终于配置成功。

xiufan1的博客 549

Java反射

一、反射概念 反射:框架设计的灵魂 框架:半成品软件。可以在框架的基础上进行软件开发,简化编码 反射:将类的各个组成部分封装为其他对象,这就是反射机制 好处∶ 1.可以在程序运行过程中,操作这些对象。 2.可以解耦,提高程序的可扩展行。 Java代码 在计算机中经历的阶段:三个阶段 二、反射获取Class对象的三种方式 获取class对象的方式: 1.Class.forName("全类名"):将字节码文件加载进内存,返回class对象。 * 多用于配置文件,将类名定义在配置文件.

Jak的博客 280

基于微信小程序的垃圾分类系统,附源码

垃圾分类小程序管理员功能有个人中心,管理员管理,意见反馈管理,视频类型管理,垃圾类型管理,新闻类型管理,论坛信息管理,环保视频管理,环保知识管理,垃圾信息管理,环保新闻管理,用户管理,知识问答试卷管理,试题管理,测试管理,轮播图管理。用户可以在微信小程序上面注册登录,查看各种环保信息和垃圾信息,还可以参加知识问答等操作。垃圾分类小程序的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。

Java徐师兄的博客 2074

C# Socket通信从入门到精通(14)——多个异步UDP客户端C#代码实现(史上最全)

本文详细介绍了Socket通信中多个异步Udp客户端功能的实现、介绍如何使用多个客户端与多个服务器进行数据的交互,包含连接服务器、断开服务器、发送数据、读取数据、C#代码实现,由高级工程师多年经验总结而成,绝对干货!

qq_34059233的博客 1982

java 返回值void,有人可以解释Java中的void返回类型吗?

The only void return type I have seen has System.out.println statements in a method.So once the method is called those Strings will be printed.Couldn't you make the return type string and have the str...

weixin_30104235的博客 468

【01】Python解释器的安装

工欲善其事必先利其器。君欲学PYthon,则必先安装Python解释器。安装过程相对简单,大致跟着如下步骤走即可。

侯小啾技术博客 1258

Java 反射机制核心类详解:Class、Constructor、Method、Field

Java反射机制是一种强大的动态编程技术,允许程序在运行时获取和操作类的元数据(属性、方法、构造器等)。其核心包含四大类:Class(类元数据入口)、Constructor(构造方法操作)、Method(方法调用)和Field(属性读写)。反射提供了极高的灵活性,支持动态加载类、调用私有成员等特性,是Spring、MyBatis等框架的底层基础。但反射也存在性能开销、安全隐患等缺点,适用于框架开发、动态代理等场景,在常规业务中应谨慎使用。

qq_40303030的博客 3564

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java反射机制

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取信息以及动态调用对象的方法的功能称为java语言的反射机制。在仅知道“包名+类名”的情况下使用。动态获取类的信息。

2303_77640525的博客 2187

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

初识Java反射机制 总结

关于Java中的反射机制 1.初识反射机制        在java中通过反射机制可以操作相关的字节码文件。如获取类文件,创建对象,调用方法等。        与反射机制相关的类包括Class,Method,Constructor,Field等,其中Class类在java.lang包下,Method,Constructor,Field类在java.lang.reflec

ssH18868325485的博客 3149

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java反射机制及Method.invoke详解

这篇文章主要介绍了Java反射机制及Method.invoke详解,本文讲解了JAVA反射机制、得到某个对象的属性、得到某个类的静态属性、执行某对象的方法、执行某个类的静态方法等内容,需要的朋友可以参考下 JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能

coc_k的博客 3431

Java反射机制详解 及 Method.invoke解释

JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对

Java 攻城狮~~ 3万+

Java 反射机制

一、总体介绍 1、什么是反射机制。 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制(注意关键词:运行状态)换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实...

qq_36511401的博客 1万+

Java 反射机制

本文从底层原理、核心 API、实战场景、性能优化四个维度解析 Java 反射机制,结合枚举注解解析的真实案例,讲解反射的核心用法,剖析反射性能损耗根源并给出缓存、MethodHandle 等优化方案,明确反射的适用及禁用场景,帮助开发者掌握这一框架开发的核心能力,做到合理、高效使用反射。

初入江湖,多多关照 1184

Java反射机制与Method的invoke方法实现

一、什么是反射: (1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。 (2)Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。 二、反射的原理: 下图是类的正常加载过

qq_52971866的博客 1470

Java的反射机制

●Java反射(Java反射机制就是在运行过程中,通过reflectionAPI可以得到任何一个类的内部信息,并能直接操控任何一个对象的内部属性及方法.●Java反射的作用动态获取类的完整信息&调用对象方法●比对在通常情况下,我们使用类会知道类名,以及要用这个类干什么,可以直接通过new来创建对象,然后调用对象成员进行操作,这个叫做正射。

记录学习 1185

java反射机制原理详解_程序猿都要懂的Java反射机制

问题:在运行时,对一个JAVA类,能否知道属性和方法;能否调用它的任意方法?答案是可以的,JAVA提供一种反射机制可以实现。目录什么是JAVA的反射机制JDK中提供的Reflection APIJAVA反射机制提供了什么功能获取类的Class对象获取类的Fields获取类的Method获取类的Constructor新建类的实例Class的函数newInstance通过Constructor对象的方...

weixin_39692557的博客 2242

java反射机制 及 Method.invoke,Class. getMethod()的使用

JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一

hj363049394的专栏 8368

Java反射机制总结

前言 有两种方法获取Java运行时的类型信息,分别是: RTTI(Run-Time Type Identification) Java反射机制 Java反射机制的定义 Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性。这种动态获取信息以及动态调用对象方法的功能称为Java反射机制。 Java类的三个阶段: Class类 Class类是Java的一个基础类,每装载一个新类时,JVM就会在Java堆中,创建一个Class的实例,

huangjhai的博客 792

Java之反射机制详解

反射机制 反射机制在java.lang.reflect.*包下 反射机制相关的重要的类有 java.lang.Class:代表字节码文件 java.lang.reflect.Method:代表字节码中的方法字节码 java.lang.reflect.Constructor:代表字节码中的构造方法字节码 java.lang.reflect.Field:代表字节码中的属性字节码 反射机制有什么用 通过java语言中的反射机制可以操作字节码文件。有点类似于黑客(可以读和修改字节码文件。)通过反射机制可以操作代

大白的成长之路 1945
上一篇: java反射机制实战(2) - Constructors
下一篇: java反射机制实战(4) - Field
Patrick Choi
博客等级 码龄13年 2粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值