反射调用构造方法|学习笔记

简介: 快速学习反射调用构造方法

开发者学堂课程【Java 高级编程反射调用构造方法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/20/detail/381


反射调用构造方法


目录:

1、修改Person类的定义

2、获取构造

3、调用指定构造实例化对象

1.修改Person类的定义


在一个类之中除了有继承的关系之外最为重要的操作就是类中的结构处理 ,而类中的构造里面首先需要观察的是构造法使用问题

实例化方法替代:

clazz . getDeclaredConstructor (). newInstance ():

所有类的构造方法的获取都可以直接通过 Class  类来完成,该类中定义有如下的几种。


获取所有构造方法:

public Constructor <?>[] getDeclaredConstructors ()

throwsSecurityException

获取指定构造方法:

public Constructor < T > getDeclaredConstructor ( Class <?>...parameterTypes )

throws NoSuchMethodException ,SecurityException

获取所有构造方法:

public Constructor <?>[]getConstructors ()

throws SecurityException

获取指定构造方法:

public Constructor < T > getConstructor ( Class <?>.. parameterTypes )

throws NoSuchMethodException ,Security Exception。

 

2.获取构造

此时获取的是类之中的全部构造方法,但是也可以获取 一个指定参数的构造例如:现在的 Person 类之中提供有两个构造:

图片3.png


3.调用指定构造实例化对象

此时程序打算调用 Person 类之中的有参构造方法进行  Person  类对象的实例化处理,必须要指名要调用的构造,再通过 Constructor 类之中提供的实例化方法操作:

public T newInstance (0bject... initargs )throws InstantiationException ,

IllegalAccessException,IllegalArgumentException, InvocationTargetException

范例:图片4.png

虽然程序代码本身允许开发者调用有参构造处理,但 从实际的开发来看所有的使用反射的类中最好提供有无参构实例化来达到统一性


图片5.png


相关文章
|
存储 Java 测试技术
记一次堆内外内存问题的排查和优化
记一次堆内外内存问题的排查和优化
688 0
|
存储 分布式计算 Apache
构建 Streaming Lakehouse:使用 Paimon 和 Hudi 的性能对比
Apache Paimon 和 Apache Hudi 作为数据湖存储格式,有着高吞吐的写入和低延迟的查询性能,是构建数据湖的常用组件。本文将在阿里云EMR 上,针对数据实时入湖场景,对 Paimon 和 Hudi 的性能进行比对,然后分别以 Paimon 和 Hudi 作为统一存储搭建准实时数仓。
60084 9
构建 Streaming Lakehouse:使用 Paimon 和 Hudi 的性能对比
Maven之阿里云镜像仓库配置
方式一:全局配置可以添加阿里云的镜像到maven的setting.xml配置中,这样就不需要每次在pom中,添加镜像仓库的配置,在mirrors节点下面添加子节点: <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.
|
SQL 存储 DataWorks
Flink Forward Asia 2023 主会场精彩回顾
2023 年 12 月 8 日-9 日, **Flink Forward Asia(FFA)**峰会成功举行。Flink Forward Asia 是由 Apache 软件基金会官方授权、由阿里云承办的技术峰会。
16575 0
Flink Forward Asia 2023 主会场精彩回顾
|
存储 JavaScript Java
城乡居民基本医疗信息管理系统|基于Springboot的城乡居民基本医疗信息管理系统设计与实现(源码+数据库+文档)
城乡居民基本医疗信息管理系统|基于Springboot的城乡居民基本医疗信息管理系统设计与实现(源码+数据库+文档)
175 0
修改apt-get源为国内镜像源
修改apt-get源为国内镜像源
5707 0
|
消息中间件 存储 Apache
Apache Paimon 表模式最佳实践
Apache Paimon 表模式最佳实践
3866 57
|
监控 前端开发 算法
Java技术体系
Java技术体系(韩顺平老师整理)
109 0
|
应用服务中间件 Linux 网络安全
nginx安装配置ssl模块支持https访问
nginx安装配置ssl模块支持https访问
428 0
nginx安装配置ssl模块支持https访问
|
SQL JSON 关系型数据库
【万字长文】Flink cdc源码精讲(推荐收藏)(一)
【万字长文】Flink cdc源码精讲(推荐收藏)
2737 0
【万字长文】Flink cdc源码精讲(推荐收藏)(一)