当前位置: 首页 > news >正文

反射获取Constructor、Field、Method对象

1、获取构造器

Constructor [ ]    getConstructor s   ( ) 获取全部的构造器:只能获取 public 修饰的构造器
package com.csdn.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.junit.Test;
import java.lang.reflect.Constructor;
public class Print {@Testpublic void test01() {//a.第一步:获取类对象Class c = Student.class;//b.提取类中的全部的构造器对象Constructor[] constructors = c.getConstructors();//c.遍历构造器for (Constructor constructor : constructors) {System.out.println(constructor.getName() + "===>" + constructor.getParameterCount());
//          com.csdn.pojo.Student===>0
//          com.csdn.pojo.Student===>2}}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
class Student {private String name;private int age;
}
getConstructor(Class . . .   parameterTypes)获取某个构造器:只能拿 public 修饰的 某个 构造器
    @Testpublic void test02() throws NoSuchMethodException {//a.第一步:获取类对象Class c = Student.class;//b.定位单个构造器对象(按照参数定位无参数构造器)Constructor cons = c.getConstructor();System.out.println(cons.getName() + "===>" + cons.getParameterCount());//com.csdn.pojo.Student===>0Constructor cons2 = c.getConstructor(String.class, int.class);System.out.println(cons2.getName() + "===>" + cons2.getParameterCount());//com.csdn.pojo.Student===>2}
getDeclaredConstructor s (Class <?> . . . parameterTypes)获取 全部 构造器:只要你敢写,这里就能拿到,无所谓   权限 是否可及

 

    @Testpublic void test04() throws NoSuchMethodException {//a.第一步:获取类对象Class c = Student.class;//b.定位单个构造器对象(按照参数定位无参数构造器)Constructor[] cons = c.getDeclaredConstructors();//c.遍历构造器for (Constructor constructor : cons) {System.out.println(constructor.getName() + "===>" + constructor.getParameterCount());//com.csdn.pojo.Student===>0//com.csdn.pojo.Student===>2}}
@Data
class Student {private String name;private int age;private Student() {}private Student(String name, int age) {this.name = name;this.age = age;}
}
getDeclaredConstructor (Class<?> . . .   parameterTypes)获取 某个 构造器:只要你敢写,这里就能拿到,无所谓  权限 是否可及
    @Testpublic void test03() throws NoSuchMethodException {//a.第一步:获取类对象Class c = Student.class;//b.定位单个构造器对象(按照参数定位无参数构造器)Constructor cons = c.getDeclaredConstructor();System.out.println(cons.getName() + "===>" + cons.getParameterCount());//com.csdn.pojo.Student===>0Constructor cons2 = c.getDeclaredConstructor(String.class, int.class);System.out.println(cons2.getName() + "===>" + cons2.getParameterCount());//com.csdn.pojo.Student===>2}
@Data
class Student {private String name;private int age;private Student() {}private Student(String name, int age) {this.name = name;this.age = age;}
}

使用反射技术获取构造器对象并使用

  • 反射的第一步是先得到类对象,然后从类对象中获取类的成分对象
  • Class类中用于获取构造器的方法
    方法说明
    Constructor <?> [ ] getConstructors ( )返回所有构造器对象的数组(只能拿 public 的)
    Constructor <?> [ ] getDeclaredConstructors()返回所有构造器对象的数组,存在就能拿到
    Constructor <T>    getConstructor (Class<?> . . . parameterTypes)返回单个构造器对象(只能拿 public 的)
    Constructor <T>    getDeclaredConstructor (class<?> . . . parameterTypes)返回单个构造器对象,存在就能拿到

相关文章:

反射获取Constructor、Field、Method对象

1、获取构造器 Constructor [ ] getConstructor s ( ) 获取全部的构造器&#xff1a;只能获取 public 修饰的构造器 package com.csdn.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.junit.Test; import jav…...

【Netty】 ByteBuf的常用API总结

目录 一、ByteBuf介绍 二、ByteBuf创建 1.池化创建 ByteBufAllocator 2.Unpooled &#xff08;非池化&#xff09;创建ByteBuf 3.ByteBufUtil 操作ByteBuf 三、读取ByteBuf数据 1.get方法 2.read方法 3.set方法 4.write方法 5.索引管理 6.索引查找 7.索引查找 8.其…...

热门敏捷开发管理工具

敏捷管理研发工具可以协助团队更好地进行敏捷开发和管理。以下是几种流行的敏捷管理研发工具&#xff1a; Leangoo&#xff1a;Leangoo领歌一款永久免费的专业敏捷研发管理工具&#xff0c;它覆盖了敏捷项目研发全流程&#xff0c;包括小型团队敏捷开发&#xff0c;规模化敏捷…...

Java分支结构:一次不经意的选择,改变了我的一生。

&#x1f451;专栏内容&#xff1a;Java⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、顺序结构二、分支结构1、if语句2、switch语句 好久不见&#xff01;命运之轮常常在不经意间转动&#xff0c;有时一个看似微…...

Unity中Shader需要了解的点与向量

文章目录 前言一、点和向量的区别二、向量加法减法1、向量加法2、向量减法(可以把向量减法转化为向量加法) 三、向量的模四、标量![在这里插入图片描述](https://img-blog.csdnimg.cn/03df81df3cdf47989a11605d5f5e7da5.png)1、向量与标量的乘法 前言 Unity中Shader了解使用的…...

Java初始化大量数据到Neo4j中(一)

背景&#xff1a;我们项目第一次部署图数据库&#xff0c;要求我们把现有的业务数据以及关系上线第一时间初始化到Neo4j中。开发环境数据量已经百万级别。生成环境数据量更多。 我刚开始开发的时候&#xff0c;由于对Neo4j的了解并没有很多&#xff0c;第一想到的是用代码通用组…...

Excel·VBA日期时间转换提取正则表达式函数

标准日期转换 Function 标准日期(ByVal str$) As DateDim pat$, result$arr Array("(\d{4}).*?(\d{1,2}).*?(\d{1,2})", "(\d{4}).*?(\d{1}).*?(\d{1,2})")If Len(str) < 8 Then pat arr(1) Else pat arr(0)With CreateObject("vbscript.r…...

Django中的缓存

Django中的缓存 缓存的定义 定义: 缓存是-类可以更快的读取数据的介质统称&#xff0c;也指其它可以加快数据读取的存储方式。一般用来存储临时数据&#xff0c;常用介质的是读取速度很快的内存 意义:视图渲染有一定成本&#xff0c;数据库的频繁查询过高;所以对于低频变动的页…...

Python 编程基础 | 第二章-基础语法 | 2.4、while 语句

一、while 语句 1、循环语句 Python 编程中 while 语句用于循环执行程序&#xff0c;其基本形式为&#xff1a; while 判断条件(condition)&#xff1a;执行语句(statements)……例如&#xff1a; count 0 while (count < 9):print(count)count 1while 语句时还有另外两个…...

Qt Charts简介

文章目录 一.图标类型Charts分类1.折线图和样条曲线图2.面积图和散点图3.条形图4.饼图5.误差棒图6.烛台图7.极坐标图 二.坐标轴Axes类型分类三.图例四.图表的互动五.图表样式主题 一.图标类型Charts分类 图表是通过使用系列类的实例并将其添加到QChart或ChartView实例来创建的…...

MinGW、GCC、GNU和MSVC是什么?有什么区别?

在C和C开发中&#xff0c;常常会遇到MinGW、GCC、GNU和MSVC这些术语。本教程将向您解释它们的含义以及它们之间的区别&#xff0c;帮助您更好地理解这些常见的编译工具和开发环境。 MinGW&#xff08;Minimalist GNU for Windows&#xff09;&#xff1a; MinGW是一个开源的软件…...

引入easyExcel后,导致springboot项目无法开启tomcat

报错信息&#xff1a; Caused by: java.lang.annotation.IncompleteAnnotationException: org.terracotta.statistics.Statistic missing element type at sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:81) at com.sun.proxy…...

Doris数据库FE——启动流程源码详细解析

Doris中FE主要负责接收和返回客户端请求、元数据以及集群管理、查询计划生成等工作。代码路径&#xff1a;doris/fe/fe-core/src/main/java/org/apache/doris/DorisFE.java 环境检查 在启动FE的时候&#xff0c;主要做环境检查。检查一些启动时必要的环境变量以及初始化配置…...

服务断路器_Resilience4j线程池隔离实现

线程池隔离配置修改YML文件 resilience4j:thread-pool-bulkhead: instances:backendA:# 最大线程池大小maxThreadPoolSize: 4# 核心线程池大小coreThreadPoolSize: 2# 队列容量queueCapacity: 2编写controller /*** 测试线程池服务隔离* return*/Bulkhead(name "backe…...

原神启动原神启动原神启动原神启动

测试游戏抽卡场景是确保玩家可以正常抽取虚拟物品或角色的重要部分。以下是一些可能的游戏抽卡场景的测试用例示例&#xff1a; 1.正常抽卡流程&#xff1a; 2.测试用户是否能够成功进行一次或多次抽卡操作。 3.确保每次抽卡后&#xff0c;用户收到相应的物品或角色。 4.抽卡…...

Glide - Android的图像加载和缓存库,专注于平滑滚动

官网 GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling 项目介绍 An image loading and caching library for Android focused on smooth scrolling Glide is a fast and efficient open source media management a…...

如何使用 API 接口获取商品数据,从申请 API 接口、使用 API 接口到实际应用,一一讲解

在当今的数字化时代&#xff0c;应用程序接口&#xff08;API&#xff09;已经成为数据获取的重要通道。API 接口使得不同的应用程序能够方便地进行数据交换&#xff0c;从而促进了信息的广泛传播和利用。在众多的数据源中&#xff0c;商品数据是一个非常重要的领域&#xff0c…...

苹果 CMS 原生 Java 白菜影视 App 源码【带打包教程】

苹果 CMS 原生 Java 白菜影视 App 源码是一款功能强大的影视应用程序&#xff0c;支持画中画、投屏、点播、播放前广告和支持普通解析等多种功能。与萝卜 App 源码相比&#xff0c;该套源码更加稳定&#xff0c;且拥有画中画投屏和自定义广告等功能&#xff0c;提高了安全性。 …...

Flutter开发之Package与Plugin

前言 在flutter中有包和插件两个概念&#xff0c;插件 (plugin) 是 package 的一种&#xff0c;全称是 plugin package&#xff0c;我们简称为 plugin&#xff0c;中文叫插件。包(Package)主要指对flutter相关功能的封装&#xff0c;类似于Android中的插件和iOS中的三方库。而插…...

[极客大挑战 2019]RCE ME 取反绕过正则匹配 绕过disable_function设置

目录 取反 1.蚁剑插件绕过 2.baypass disable_function open_dir/disable_function putenv()/LD_PRELOAD 来绕过限制 利用条件 利用思路 有意思。。。。 <?php error_reporting(0); if(isset($_GET[code])){$code$_GET[code];if(strlen($code)>40){die("Th…...

基于RAG的本地知识库聊天机器人:anything-llm部署与实战指南

1. 项目概述&#xff1a;一个能“消化”任何文件的本地知识库聊天机器人最近在折腾本地大模型应用的朋友&#xff0c;可能都绕不开一个痛点&#xff1a;如何让大模型“读懂”并“记住”我自己的文档&#xff1f;无论是PDF报告、Word文档、网页文章&#xff0c;还是代码片段&…...

Linux桌面美化:pixie-cursors鼠标指针主题安装与定制指南

1. 项目概述&#xff1a;一个为Linux桌面注入灵魂的鼠标指针主题如果你和我一样&#xff0c;是一个长期在Linux桌面环境下工作的开发者或爱好者&#xff0c;那么对于系统美化的追求&#xff0c;可能从未停止过。从窗口管理器到终端配色&#xff0c;从图标包到壁纸&#xff0c;每…...

Cadence-OS深度解析:Uber Cadence增强发行版的生产实践指南

1. 项目概述与核心价值最近在梳理工作流自动化工具时&#xff0c;又翻出了paulophl94/cadence-os这个项目。它不是一个全新的轮子&#xff0c;而是基于 Uber 开源的 Cadence 工作流引擎&#xff0c;进行深度定制和增强的一个发行版。如果你正在为微服务架构下的复杂业务流程编排…...

加州DMV十年自动驾驶报告深度解析:从测试数据看行业格局与技术演进

1. 项目概述&#xff1a;一份数据&#xff0c;十年自动驾驶风云如果你关注自动驾驶&#xff0c;那你一定听说过加州车管局&#xff08;DMV&#xff09;的年度测试报告。这玩意儿&#xff0c;可以说是全球自动驾驶行业的“晴雨表”和“成绩单”。从2015年开始&#xff0c;加州就…...

独立语音AI创业必读,ElevenLabs Independent计划全链路解析:从白名单内测→额度扩容→月度用量审计→续期失败预警

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs Independent计划的战略定位与生态价值 ElevenLabs Independent 计划并非单纯的技术授权项目&#xff0c;而是面向独立开发者、开源创作者与小型 AI 应用团队构建的可持续协作基础设施。其核…...

60 秒应急窗口下 AI 钓鱼攻击防御体系构建与工程实践

摘要 2026 年网络钓鱼攻击呈现秒级入侵、全域渗透、AI 驱动的显著特征&#xff0c;钓鱼邮件抵达至用户输入敏感信息的中位时间仅 60 秒&#xff0c;勒索软件攻击频率约每 2 秒一起&#xff0c;AI 自动化鱼叉式钓鱼点击率高达 54%&#xff0c;传统防御机制已无法适配当前威胁节奏…...

WindowsCleaner终极指南:3步彻底解决Windows系统卡顿与C盘爆红问题

WindowsCleaner终极指南&#xff1a;3步彻底解决Windows系统卡顿与C盘爆红问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否曾经面对Windows系统日益缓慢…...

崩坏星穹铁道自动化助手终极指南:三月七小助手完整使用教程

崩坏星穹铁道自动化助手终极指南&#xff1a;三月七小助手完整使用教程 【免费下载链接】March7thAssistant 崩坏&#xff1a;星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 还在为《崩坏&#xff1a;星穹铁道》中繁琐的…...

Cadence焊盘绘制实战:从零到一构建PCB封装基石

1. 为什么焊盘设计是PCB封装的基石 刚入行硬件设计那会儿&#xff0c;我总以为画封装就是照着尺寸描边。直到有次量产时发现整批QFN芯片虚焊&#xff0c;才明白焊盘设计才是封装可靠性的命门。Cadence的分离式设计哲学——将焊盘&#xff08;Padstack&#xff09;与封装&#x…...

HsMod终极指南:55项功能全面优化炉石传说游戏体验的完整方案

HsMod终极指南&#xff1a;55项功能全面优化炉石传说游戏体验的完整方案 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod是一款基于BepInEx框架开发的炉石传说模改插件&#xff0c;为…...