import java.lang.reflect.Constructor;/*** 通过反射获得私有构造器,创建对象** @author silence*/
public class Demo1 {public static void main(String[] args) throws Exception {//获得字节码文件Class<User> userClass = User.class;//获得私有化构造方法, 参数类型Constructor<User> declaredConstructor = userClass.getDeclaredConstructor(String.class);//临时取消访问修饰符限制declaredConstructor.setAccessible(true);//创建对象User user = declaredConstructor.newInstance("张三");user.get();}
}class User {private User(String name) {System.out.println(name);System.out.println("user私有构造");}public void get() {System.out.println("成员方法");}
}

通过反射获得私有构造器,创建对象相关推荐

  1. java单例模式构造器初始化_秒懂java单例模式,java私有构造器与一夫一妻制

    在<秒懂java,对于创建一个java对象,你真的会吗?>一文中,讲述了java如何创建一个对象以及如何更优雅的创建对象.此外,java里还有一种比较特殊的创建对象的方式:私有构造器创建对 ...

  2. 使用反射调用构造器创建对象

    构造器最大的作用:创建对象. 为什么使用反射创建对象,为什么不直接来new呢? 在框架中,提供给我们的都是字符串. ------------------------------------------ ...

  3. 用私有构造器或者枚举类型强化Singleton 属性

    Singleton 是仅仅被实例化一次,Singleton通常被代表一个无形状对象 实现Singleton有两种常见的方法.这两种构造器方法都要保持构造器私有,并导出公有的静态成员,以便客户端能够访问 ...

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

    package cn.learn_02;import java.lang.reflect.Constructor;/** 需求:通过反射获取私有构造方法并使用* private Person(Stri ...

  5. 用私有构造器或枚举类型强化Singleton属性(3)

    2019独角兽企业重金招聘Python工程师标准>>> 1.Singleton 代表那些本质上唯一的系统组件.增加客户端调试难度 2.Singleton 实现方法1: 构造器保持私有 ...

  6. JUnit 3.8 通过反射测试私有方法

    测试私有(private)的方法有两种: 1)把目标类的私有方法(修饰符:private)修改为(public),不推荐,因为修改了源程序不佳 2)通过反射 (推荐) 代码演示: 目标程序 Priva ...

  7. 反射获取私有构造方法并运行

    package cn.learn.demo1;import java.lang.reflect.Constructor;/** 反射获取私有的构造方法运行* 不推荐,破坏了程序的封装性,安全性* 暴力 ...

  8. 【Effective Java】第二章:静态工厂、构建器、强化Singleton属性、私有构造器、

    文章目录 一. 用静态工厂方法代替构造器 优势: 劣势: 实例代码: 二. 遇到多个构造器参数时要考虑使用构建器 ① 重叠构建器 ② JavaBeans模式 ③ Builder模式 三. 用私有构造器 ...

  9. java 反射 调用私有构造函数_使用反射调用私有方法

    1.创建一个被调用的类 /** * @version 1.0 * @Author F-llin * @Date 2020-12-04 13:53 */ public class Bean{ priva ...

最新文章

  1. 基于Yolo-V3对卫星图像进行储油罐容积占用率的研究
  2. jQuery 2.0.3 源码分析 Deferred(最细的实现剖析,带图)
  3. 【C 语言】内存四区原理 ( 栈内存属性增长方向 | 栈内存开口方向 | 代码示例 )
  4. 安卓canvas设置HTML,安卓开发中view和canvas的理解
  5. Java NIO系列教程(四) Scatter/Gather
  6. C++单元测试框架的比较(zz)
  7. layerconfirm 自动关闭问题 没有阻塞问题_微信新版本自动更新?赶紧关闭这个功能...
  8. MySQL等级考试题目练习_全国计算机等级考试二级MySQL练习题
  9. .net生成缩略图,支持等比例缩放,加水印
  10. mysql insert 运算_MySql insert插入操作的3个小技巧分享
  11. NIOS2按键中断与ISR写法
  12. JSK-2 整除问题【入门】
  13. C++11多线程中的detach()、join()、joinable()
  14. 速卖通关键词挖掘工具_2020网站关键词挖掘工具有哪些
  15. mysql5.6安装步骤详细_详解MySQL5.6安装步骤
  16. 【VMWare通过vmdk文件创建虚拟机】
  17. 在html中加入高德地图,javascript高德地图放到网页中的方法
  18. C++求球的面积与体积,公式一样输出结果不一样?
  19. 爬取微信公众号cookie获取与token获取
  20. 安卓开发API版本选择

热门文章

  1. 在java中字符流怎么复制_Java 使用字符流拷贝数据
  2. 芯片设计中的latch_Latch-up (闩锁效应)
  3. java list 分组_Java 将List中的实体类按照某个字段进行分组并存
  4. socket 编程入门教程(一)TCP server 端:7、接收与发送
  5. python发送邮箱_你知道怎么用Python发送邮件吗?
  6. list取数据_Day.5利用Pandas做数据处理(二)
  7. 【转】C#检查键盘大小写锁定状态的方法
  8. 第二十二节: 以SQLServer为例介绍数据库自有的锁机制(共享锁、更新锁、排它锁等)和事务隔离级别 :
  9. 【转】The password supplied with the username Domain\UserName was not correct. AD密码定期更换
  10. oracle只匹配中文,Oracle 实现 一个关键字 匹配多个 字段