Java 反射 调用私有构造方法
单例类:
package singleton;
public class SingletonTest {
// 私有构造方法
private SingletonTest(){
System.out.println("无参数---构造----");
}
// 私有构造方法
private SingletonTest(String a){
System.out.println("有参数---构造----参数值:" + a);
}
//定义私有类型的变量
private static volatile SingletonTest instance;
//定义一个静态共有方法
public static SingletonTest getInstance(){
if(instance == null){
synchronized(SingletonTest.class){
if(instance == null){
return new SingletonTest();
}
}
}
return instance;
}
}
测试调用类:
package reflect; import java.lang.reflect.Constructor;
import java.lang.reflect.Method; import singleton.SingletonTest; public class ReflectDemo { public static void main(String[] args) throws Exception{
Class clazz = SingletonTest.class; /*以下调用无参的、私有构造函数*/
Constructor c0= clazz.getDeclaredConstructor();
c0.setAccessible(true);
SingletonTest po=(SingletonTest)c0.newInstance();
System.out.println("无参构造函数\t"+po); /*以下调用带参的、私有构造函数*/
Constructor c1=clazz.getDeclaredConstructor(new Class[]{String.class});
c1.setAccessible(true);
SingletonTest p1=(SingletonTest)c1.newInstance(new Object[]{"我是参数值"});
System.out.println("有参的构造函数\t"+p1); } }
结果:
无参数---构造----
无参构造函数 singleton.SingletonTest@11ff436
有参数---构造----参数值:我是参数值
有参的构造函数 singleton.SingletonTest@da3a1e
参考资料
Java 反射 调用私有构造方法的更多相关文章
- Java 反射 调用私有域和方法(setAccessible)
Java 反射 调用私有域和方法(setAccessible) @author ixenos AccessibleObject类 Method.Field和Constructor类共同继承了Acces ...
- java反射调用私有方法和修改私有属性
//调用私有方法package com.java.test; public class PrivateMethod { private String sayHello(String name) { r ...
- Android(java)学习笔记108:通过反射获取私有构造方法并且使用
反射获取私有构造方法并且使用: 1.获取字节码文件.class对象: Class c = Class.forName("cn.itcast_01.Person") ...
- Android(java)学习笔记49:通过反射获取私有构造方法并且使用
1. 反射获取私有构造方法并且使用: (1)获取字节码文件.class对象: Class c = Class.forName("cn.itcast_01.Person&qu ...
- 利用java反射调用类的的私有方法--转
原文:http://blog.csdn.net/woshinia/article/details/11766567 1,今天和一位朋友谈到父类私有方法的调用问题,本来以为利用反射很轻松就可以实现,因为 ...
- C# 反射调用私有事件
原文:C# 反射调用私有事件 在 C# 反射调用私有事件经常会不知道如何写,本文告诉大家如何调用 假设有 A 类的代码定义了一个私有的事件 class A { private event EventH ...
- 2019-11-29-C#-反射调用私有事件
原文:2019-11-29-C#-反射调用私有事件 title author date CreateTime categories C# 反射调用私有事件 lindexi 2019-11-29 08: ...
- 2019-8-30-C#-反射调用私有事件
title author date CreateTime categories C# 反射调用私有事件 lindexi 2019-08-30 08:52:57 +0800 2018-09-19 20: ...
- Java 反射获取私有方法
通常我们创建一个类时,它的私有方法在类外是不可见的,但是可以通过反射机制来获取调用.具体的反射机制的介绍大家自己百度. 所以反射可能会破坏我们的单例模式,当然解决方案也是有的,就是做个标记记录次数,第 ...
随机推荐
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如 ...
- C# 把ABCD转换成数字
每倒题得选项可能是多选或者单选. public static string LetterTransformationNum(string answer, int type) { string num ...
- 一脸懵逼学习HBase---基于HDFS实现的。(Hadoop的数据库,分布式的,大数据量的,随机的,实时的,非关系型数据库)
1:HBase官网网址:http://hbase.apache.org/ 2:HBase表结构:建表时,不需要指定表中的字段,只需要指定若干个列族,插入数据时,列族中可以存储任意多个列(即KEY-VA ...
- 分享微信h5支付源码
类库代码 wechatH5Pay.php <?php //use Flight; /** * 微信支付服务器端下单 * 微信APP支付文档地址: https://pay.weixin.qq.co ...
- es6 新增字符串方法
es6新增了4个字符串处理的方法:startsWith,endsWith,includes,repeat. 1.简单使用 includes()返回布尔值,表示是否找到了参数字符串 startsWith ...
- opencv图片坐标和数组坐标
图片坐标和数组坐标是相反的,坐标原点位于左上角 import numpy as np import cv2 height, width = 150, 200 img = np.zeros((heigh ...
- HashMap、HashTable与ConcurrentHashMap区别
线程不安全的HashMap 在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap.例如,执行如下代码会引起死循环. fin ...
- nginx proxy_pass指令’/’注意事项
1. proxy_pass配置说明 不带/ location /test/ { proxy_pass http://t6:8300; } 带/ location /test/ { proxy_pass ...
- js前端ajax提交list集合参数至后端
var orderNosList = new Array(); var rows = $("#dg_linkOrder").datagrid("getChecked&qu ...
- lvs-dr
第5节 dr模型 在rs上配置 :rip 和vip vip定义在lo别名上 Director 上配置:vip 和dip 都只需要一块网卡 网卡都桥接 Vip: 192.168.0.105 ...