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 反射获取私有方法
通常我们创建一个类时,它的私有方法在类外是不可见的,但是可以通过反射机制来获取调用.具体的反射机制的介绍大家自己百度. 所以反射可能会破坏我们的单例模式,当然解决方案也是有的,就是做个标记记录次数,第 ...
随机推荐
- Linux发布WebApi
一:WebApi 使用Owin来做 http://www.cnblogs.com/xiaoyaodijun/category/666029.html 二:安装最新版的Jexus服务 https:// ...
- 【BZOJ4764】弹飞大爷
题解: 这个应该还是比较简单的 首先比较容易想到用lct来维护 我们可以建立一个特殊点 然后我们要处理环 其实只要判断它和不和这个特殊点联通就行了 那么当它不是环了我们怎么还原呢 只要对每个在根节点记 ...
- scrapy中输出中文保存中文
1.json文件中文解码: #!/usr/bin/python #coding=utf-8 #author=dahu import json with open('huxiu.json','r') a ...
- 搭建自己的docker仓库
https://docs.docker.com/registry/deploying/#run-a-local-registry https://docs.docker.com/registry/in ...
- Javascript \x 反斜杠x 16进制 编解码
js 里 \x 开头的通常是16进制编码的数据,下面代码实现编解码: 解码 function decode(str){ return str.replace(/\\x(\w{2})/g,functio ...
- 063 SparkStream数据接收方式
1.两种方式 2.Basic Source 由StreamingContext可以提供的API 上面做的wordcount中的方式就算是第一种方式. 3.Advanced Source 使用数据接收器 ...
- webapp用户身份认证方案 JSON WEB TOKEN 实现
webapp用户身份认证方案 JSON WEB TOKEN 实现Deme示例,Java版 本项目依赖于下面jar包: nimbus-jose-jwt-4.13.1.jar (一款开源的成熟的JSON ...
- OpenJ_Bailian 4017 爬楼梯
时间限制: 1000 ms 空间限制: 262144 KB 题目描述 树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数.例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一 ...
- css3和html5
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- python爬取今日头条关键字图集
1.访问搜索图集结果,获得json如下(右图为data的一条的详细内容).页面以Ajax呈现,每次请求20个图集,其中 title --- 图集名字 artical_url --- 图集的地址 cou ...