当前位置: 首页 > 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…...

硬盘接口随机

关于硬盘接口 1 首先&#xff0c;关于[物理接口、协议、通道]2 物理接口&#xff1a;通讯中的电&#xff0c;光口&#xff0c;“物理规格&#xff0c;像是公路、铁路”。通道&#xff1a;通讯协议中的应用层以下所有层&#xff1f;“县道&#xff0c;省道&#xff0c;高速&am…...

芯片测试方案之如何测试芯片EN输入阈值?

在电源管理芯片的设计中&#xff0c;除了常规的VIN、VOUT以及GND端口之外&#xff0c;还会有SW、EN、FB等芯片独有的特殊端口引脚&#xff0c;这些引脚或负责电源开关的输入&#xff0c;或负责电路的反馈电压/电流&#xff0c;这些引脚在芯片的工作中有着极其重要的作用&#x…...

screenOrientation的值

在 Android 应用程序中&#xff0c;android:screenOrientation 属性可以设置为多个不同的值&#xff0c;以控制活动的屏幕方向。以下是一些常用的 android:screenOrientation 的值&#xff1a; "unspecified"&#xff1a;这是默认值&#xff0c;表示系统会根据设备的…...

为什么SQL预编译可以防止SQL注入攻击

前言 防范SQL注入攻击是每一位做后端开发的程序员必须会的基本功。本文介绍其中一种防范攻击的方法&#xff1a;SQL预编译。 本文大部分内容引用自这篇文章&#xff0c;部分内容有修改。 注入例子 先简单回顾下SQL注入攻击的过程&#xff0c;假设有一个SQL语句&#xff1a; …...

基于体系结构-架构真题2022(四十一)

给定关系模式R&#xff08;U,F&#xff09;&#xff0c;其中U为属性集&#xff0c;F是U上的一组函数依赖&#xff0c;那么函数依赖的公理系统中分解规则是指&#xff08;&#xff09;为F所蕴含。 解析&#xff1a; 伪传递是x到y&#xff0c;wy到z&#xff0c;则xw到z 传递是z…...

【uniapp+vue3 】页面加载时根据不同角色设置导航栏标题

uniapp 页面加载时根据不同角色设置导航栏标题 其实很好实现&#xff0c;第一次开发uniapp项目&#xff0c;所以什么都不懂&#xff0c;绕了一点点的弯路 在对应页面的onLoad中获取到跳转过来传的参数中的判断角色字段&#xff0c;我这里传的是getRole uni.setNavigationBarT…...

不讲故事的设计模式-模板方法模式

文章目录 模板方法模式简介作用模板方法模式的缺点模板方法模式的应用场景业务场景开源框架中的应用 对比回调和Hook模式关于组合优先于继承 关于设计模式乱用的现象 模板方法模式 简介 模板方法模式是一种行为型设计模式&#xff0c;该设计模式的核心在于通过抽象出一套相对…...

基于SpringBoot的酒店客房管理系统

基于SpringBoot的酒店管理系统、酒店客房管理系统 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 首页 管理员界面 用户界面 代码展示 <temp…...

消息队列-RabbitMQ(二)

接上文《消息队列-RabbitMQ&#xff08;一&#xff09;》 1、RabbitMQ概念...

程序通过命令行获取操作系统名称+版本+CPU名称等:Part2

文章目录 &#xff08;一&#xff09;沿用的方法&#xff08;二&#xff09;问题和调整&#xff08;2.1&#xff09;Windows11的版本号是10.0&#xff08;2.2&#xff09;Golang和管道符号&#xff08;Linux&#xff09;&#xff08;2.3&#xff09;最大内存容量 vs 当前安装内…...

北京网站手机站建设公司电话号码/全媒体广告代理

正题第二题&#xff1a;上白泽慧音这道题就是裸裸的Tarjan强联通咯~我们找出每个环&#xff0c;判断一下每个环的大小。排一下序输出即可。 代码<模板要背熟> #include<cstdio> #include<cstdlib> #include<cstring> #include<vector> #include&…...

网站构建培训/seo关键词库

前段时间&#xff0c;朋友让我推荐一款运动耳机&#xff0c;说是给孩子跑步的时候使用。对了&#xff0c;他还提出了耳机最好能脱离手机听歌的要求。其实这也不是什么难事啊&#xff0c;作为一个运动爱好者&#xff0c;我也是比较喜欢一边听歌一边跑步&#xff0c;其中也用不少…...

咔咔做受视频网站/全网热度指数

Python的安装登录官网&#xff1a;www.python.org&#xff0c;选择版本3.6.4进行下载(下文中皆以MacOS为例)并安装。 PyCharm的安装登录网址&#xff1a;www.jetbrains.com&#xff0c;选择专业版进行下载并安装。 激活PyCharm时&#xff0c;在License Server中填入&#xff1a…...

微信网站制作设计方案/媒体:北京不再公布疫情数据

C语言 基础开发----目录 在 win64操作系统 下的各数据型的取值范围。 一、各数据类型数据----字节数 数据类型charshortintlonglong longfloatdouble字节数1244848 计算存储空间相关介绍&#xff1a;C语言&#xff1a;关键字—sizeof&#xff08;计算存储空间&#xff09; 具…...

微网站制作提供商推荐/广州seo服务外包

绝对定位与相对定位和浮动的区别与运用绝对定位使元素脱离文档流&#xff0c;因此不占据空间。普通文档流中元素的布局就当绝对定位的元素不存在时一样。因为绝对定位的框与文档流无关&#xff0c;所以它们可以覆盖页面上的其他元素。 而浮动元素的定位还是基于正常的文档流。C…...

政府制作网站收费/怎么制作一个简单的网页

往期热门文章&#xff1a;1、牛客网&#xff1a;为什么不能将实数作为 HashMap 的 key&#xff1f; 2、RedisJson发布官方性能报告&#xff0c;性能碾压ES和Mongo 3、分布式数据一致性思考-B端系统一致性 4、Java字符串拼接的五种方法&#xff0c;哪种性能最好&#xff1f; 5、…...