首页 > 其他分享 >反射记录

反射记录

时间:2023-07-20 14:58:09浏览次数:26  
标签:反射 ... 对象 记录 获取 方法 Class 构造函数

Java反射是一种机制,可以在运行时检查、调用和实例化类,无需在编译时确定类的名字。使用反射可以动态地获取类的信息,并在运行时操作类的属性、方法和构造函数。

反射常用的方法名及作用介绍如下:

1. `getClass()`:获取对象的Class对象,即获取对象所属的类的信息。

2. `getMethods()`:获取公共方法的数组,包括从父类继承的方法。

3. `getDeclaredMethods()`:获取所有方法的数组,包括私有方法。

4. `getMethod(String name, Class<?>... parameterTypes)`:根据方法名和参数类型获取方法对象。

5. `getDeclaredMethod(String name, Class<?>... parameterTypes)`:根据方法名和参数类型获取私有方法对象。

6. `invoke(Object obj, Object... args)`:调用方法,obj表示调用该方法的对象,args表示方法的参数。

7. `getField(String name)`:根据字段名获取字段对象。

8. `getDeclaredField(String name)`:根据字段名获取私有字段对象。

9. `newInstance()`:创建对象实例。

10. `getConstructor(Class<?>... parameterTypes)`:根据参数类型获取构造函数对象。

11. `getDeclaredConstructor(Class<?>... parameterTypes)`:根据参数类型获取私有构造函数对象。

12. `newInstance(Object... initargs)`:根据构造函数创建对象实例。

通过使用这些反射方法,可以实现一些动态的操作,比如动态调用方法、获取和修改字段的值、创建对象实例等。但是由于反射涉及到动态性和灵活性,效率上可能不如直接调用,因此在使用时需要注意性能问题。

标签:反射,...,对象,记录,获取,方法,Class,构造函数
From: https://www.cnblogs.com/sensenh/p/17568392.html

相关文章

  • 2023 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(省赛)记录
    RC-u1亚运奖牌榜思路略代码点击查看代码#include<bits/stdc++.h>#definerep(i,x,y)for(inti=x;i<=y;++i)usingnamespacestd;#defineintlonglonginta[30][30];signedmain(){ intn; cin>>n; while(n--){ intx,c; cin>>x>>c; a[x]......
  • 百亿规模京东实时浏览记录系统的设计与实现
    1.系统介绍浏览记录系统主要用来记录京东用户的实时浏览记录,并提供实时查询浏览数据的功能。在线用户访问一次商品详情页,浏览记录系统就会记录用户的一条浏览数据,并针对该浏览数据进行商品维度去重等一系列处理并存储。然后用户可以通过我的京东或其他入口查询用户的实时浏览商......
  • mybatis批量更新出错记录
    问题:首先已经检查过代码并确认sql语法都对<updateid="batchUpdate"><foreachcollection="upList"item="d"separator=";">updatebroadcast_status<set><iftest="d.deviceName!=&......
  • 做题记录 #2
    ABC308ExMakeQ有一种\(O(n^4)\)的思路,就是枚举度为\(3\)的那个点,假设是\(u\),再枚举环上与\(u\)相连的两个点\(i\)、\(j\)和与\(u\)相连的另一个点\(k\)。我们只需再预处理出不包含\(u\)时\(i\rightarrowj\)的最短路\(f[i][j]\),那么当前的答案就是\(dis[u][i......
  • 网课记录2023.7.19
    视频BV1q54y1q79w变量的定义方法数据类型+名称+初始值(可省略)eg:intage=1;   或   intage;变量的类型局部变量:定义在{}(准确来说是作用域)内的变量,生命周期为进入作用域开始,到出作用域结束全局变量:定义在{}外,对整个代码起作用,优先级低于局部变量(即与局部变量重名时在该{}内......
  • [刷题记录Day4]Leetcode链表专题
    No.1题目两两交换链表中的节点思路模拟类型题目两个节点前后交换,同时记住原来的下一个节点虚拟头节点代码public ListNode swapPairs(ListNode head) { ListNode dummyHead = new ListNode(-1, head); ListNode cur = dummyHead; while (cur.next != ......
  • 观看视频历史记录放数据库还是redis
    观看视频历史记录放数据库还是Redis?随着互联网的飞速发展,视频网站逐渐成为人们获取信息、娱乐和学习的主要平台之一。在视频网站上观看的视频数量非常庞大,而用户观看的视频历史记录也具有一定的价值。那么,我们应该将观看视频历史记录放在数据库中还是Redis中呢?本文将从数据特点、......
  • 7.19 做题记录
    [AGC060E]NumberofCycles交换\(x_i,x_j\)必定使得\(y\)也有一对交换,于是\(f(x)+f(y)\)的变化量为偶数,所以只要这个数与初始奇偶性不同则无解。一个初步的想法是,找到\(f(x)+f(y)\)的上下界调整。上界在\(x=1,2,3...,n\)时取到,可以用反证法证明。下界的构造......
  • N58(4G模块)通过AT指令连接TCP数据传输调试记录(1)
    背景有方科技的N58-CA4G模块+以太网+TCP客户端+SSCOM串口助手+AT指令的方式调通TCP通信开发流程1.模块初始化2.非透传TCP客户端通信流程一.模块初始化1.模块初始化2.非透传TCP客户端通信流程小tips:代码主要是按照流程复现,初始化代码可以使用例程通用代码其中会用到一些调用函数,包......
  • 记录Arthas在一次性能调优过程中实践
    背景 使用jmeter对系统进行压力测试,该业务流程请求大致调用:jmeter压力机——> A系统 ——> B系统——>A系统.  A系统作为基础平台,请求先到A系统,然后转到具体的B业务系统,B接口逻辑中需要调用A系统查询基础数据。问题描述 当使用高并发访问系统时,整个系统卡住......