【通过反射获取构造方法并使用】

获取构造方法

public Constructor[] getConstructors():所有公共构造方法

public Constructor[] getDeclaredConstructors():所有构造方法

① // 获取字节码文件对象

Class c = Class.forName("cn.iponkan.Person");

②      Constructor[] cons = c.getDeclaredConstructors();

for (Constructor con : cons) {

System.out.println(con);//打印出Person类中所有的构造方法

}

获取单个构造方法

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

参数表示的是:你要获取的构造方法的构造参数个数及数据类型的class字节码文件对象

Constructor con = c.getConstructor();// 返回的是构造方法对象

创建对象

newInstance()

con.newInstance(“Hizi", 20);

public T newInstance(Object... initargs)

// 使用此 Constructor对象表示的构造方法来创建该构造方法的声明类的新实例,并用指定的初始化参数初始化该实例。

Object obj = con.newInstance();//调用Person类的无参构造方法创建Person对象obj

通过反射去获取该构造方法并使用

①// 获取字节码文件对象

Class c = Class.forName("cn.iponkan.Person");

②// 获取带参构造方法对象

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

Constructor con = c.getConstructor(String.class, int.class,String.class);

③// 通过带参构造方法对象创建对象

// public T newInstance(Object... initargs)

Object obj = con.newInstance("Hizi", 22 "合肥 ");

System.out.println(obj);

通过反射获取私有构造方法并使用

①// 获取字节码文件对象

Class c = Class.forName("cn.iponkan.Person");

②// 获取私有构造方法对象

Constructor con = c.getDeclaredConstructor(String.class);

③// 用该私有构造方法创建对象

// IllegalAccessException:非法的访问异常。

// 暴力访问

con.setAccessible(true);// 值为true则指示反射的对象在使用时应该取消Java语言访问检查。

Object obj = con.newInstance("Hizi");

System.out.println(obj);

Java反射获取构造方法相关推荐

  1. Java24-day15(完结)【反射(类加载器、反射)、反射获取构造方法-成员变量-成员方法、模块化(概述、模块基本使用、模块服务使用)】

    视频+资料[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java世界的大门)--博 ...

  2. java 反射获取父类的字段_java反射获取父类和子类字段值、赋值

    这里将告诉您java反射获取父类和子类字段值.赋值,具体操作过程:java反射获取字段值.赋值 import org.springframework.util.ReflectionUtils; imp ...

  3. 反射获取构造方法并使用【应用】

    Class类获取构造方法对象的方法 方法分类 方法名 说明 Constructor<?>[] getConstructors() 返回所有公共构造方法对象的数组 Constructor&l ...

  4. 反射获取构造方法并运行的快速的方式

    package cn.learn.demo1; /** 反射获取构造方法并运行,有快捷点的方式* 有前提:* 被反射的类,必须具有空参数构造方法* 构造方法权限必须public*/ public cl ...

  5. java反射获取注解id,通过反射获取注解(Annotation)

    以下实例,定义一个注解.通过反射获取. 主要功能:为所注解过的参数和方法附加一些信息可以获取. 定义注解. import java.lang.annotation.*; @Retention(Rete ...

  6. Java反射--获取类方法的泛型返回或泛型参数

    Java反射--获取类方法的泛型返回或泛型参数 一.测试类 public class Test02 {public void parameterTest(Map<Integer, Dog> ...

  7. Android利用Java反射获取用户手机的rom定制系统及版本,EMUI,MIUI,ColorOS,FunthouchOS等

    Android利用Java反射获取用户手机的rom定制系统版本及版本号,EMUI,MIUI,ColorOS,FunthouchOS等 前言 正文 结语 前言 现在手机厂商都推出了自己的基于Androi ...

  8. Java 反射 ---- 获取成员变量构造函数信息

    这一章我们通过Java的反射获取某个类的成员变量构造函数信息,话不多说直接上代码. 先贴工具类获取类信息的方法: package com.blockChain;import java.lang.ref ...

  9. java 反射获取属性名和值_阿里P8架构师核心知识点整理:Java基础+spring原理+微服务+算法...

    Java基础 5.1.1. JAVA 异常分类及处理 5.1.1.1. 概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法.在这种情况下 会抛出一个封装了错误信息的对象.此时, ...

最新文章

  1. 通过JavaScript简单的操作DOM(一)
  2. 怎么发表论文能保证被收录
  3. c语言 二进制压缩算法_使用C ++解释的二进制搜索算法
  4. 计算机控制中mcu,MCU学习1:单片机控制应用很广,它在智能控制中起什么作用?...
  5. 又烧一辆!蔚来ES8车库夜里起火 两个半小时才熄灭:现场惨烈
  6. 一个程序段两个小问题
  7. (二):winelib用户手册1
  8. 10分钟掌握运输问题(一)
  9. 按键精灵服务器推送消息,按键精灵手机助手基础练习:自动发送消息
  10. appfabric 性能监视篇
  11. 极速信使【IOS最强大的局域网聊天软件】
  12. 超越阿里云,华为云服务器究竟有多厉害!
  13. 程序员工资真的很高么,月入几万的难道不是吹牛?
  14. updating mysql.pid_启动mysql ERROR! The server quit without updating PID file
  15. 远程唤醒WOL启动服务器或电脑
  16. android极光推送 消息穿透广告弹窗,极光推送弹出两次消息,请大佬们帮忙指点迷津...
  17. 重庆科技学院计算机考研资料汇总
  18. 成都新房二手房房价采集
  19. java获取double类型区间随机数
  20. Python深度学习十大核心算法!

热门文章

  1. 功略三国志9加强版战略刘备篇
  2. docker如何将镜像中的文件下载到本地
  3. linux 7.4安装gcc,在 Centos 7.4 上安装Gcc 7.3
  4. 从传统金融变身科技公司后,2017年的平安交了这样一份答卷
  5. 水星路由器登录界面找不到服务器,melogin.cn打不开的解决办法(水星路由器)
  6. 抛弃了wordpress
  7. 分析LogFilter
  8. [JavaWeb-04]HTML和CSS
  9. 【OpenMMLab AI实战营 学习笔记 DAY(四)-- 目标检测基础知识及评估方法】
  10. surface屏幕闪烁重影_如何解决surface重影surfacepro4屏幕抖动原因