java框架设计中必备的一种技术,反射技术,加载类之后解剖出类的构造方法,方法,和字段
package cn.netjava.reflect; import java.awt.List; public class Person { public Person() { System.out.println("无参构造"); } public Person(int count) { System.out.println("一个参数的构造"); } public Person(int count1,int count2) { System.out.println(count1+"多个参数的构造"+count2); } private Person(List list) { System.out.println("私有构造"); } }
package cn.netjava.reflect; import java.awt.List; import java.lang.reflect.Constructor; import java.util.ArrayList; public class Demo { /** * @throws ClassNotFoundException * */ /** * //1加载类的方法 Class clazz=Class.forName("/练习题/src/cn/netjava/reflect/Person"); //2 Class clazz1 =new Person().getClass(); //3 Class clazz2=Person.class; */ public static void main(String[] args) { } //解剖测试 @org.junit.Test public void Test() throws Exception { Class clazz=Class.forName("cn.netjava.reflect.Person"); Constructor c=clazz.getConstructor(null); Person p=(Person)c.newInstance(null); } //解剖有参构造函数 @org.junit.Test public void Test1() throws Exception { Class clazz=Class.forName("cn.netjava.reflect.Person"); Constructor c=clazz.getConstructor(int.class,int.class); Person p=(Person) c.newInstance(1,2); } //解剖私有构造函数 @org.junit.Test public void Test2() throws Exception { Class clazz=Class.forName("cn.netjava.reflect.Person"); Constructor c=clazz.getDeclaredConstructor(List.class); c.setAccessible(true);//强暴私有构造函数 Person p=(Person)c.newInstance(new List()); } }
私有的构造方法不能在类外创建对象,但是反射技术可以使得它可以冲破这个权限。
相关推荐
采用超弱反射光纤光栅(FBG)结合光频域反射技术(OFDR),实现了大容量、高空间分辨率的准分布式光纤光栅传感网络的解调。通过对拍频信号分离的优化和非线性矫正,利用拍频信号的频谱信息,实现了高空间分辨率的光纤...
反射技术+简单工厂模式 反射技术+简单工厂模式
在向学生讲解Class.forName()方法的使用时,有时需要扩展讲解为什么这样书写的原理,于是,扩展讲解Java反射技术可以查看被监视类的方法(构造方法和普通方法)、公有属性的功能,以达到封闭功能的效果。该例子使用...
简单地运用反射技术,呈现出反射的思想,实现自动升级和插件技术
采用反射技术和XML,自动生成实体类和SQL语句..............
C# 反射技术应用 反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个...
运行程序,指定一个要分析的类名称,如java.lang.Double,输出类中声明的属性、方法、构造函数等。
类加载机制及反射 类加载机制及反射
通过反射操作类 更好的理解setter,getter的重要性
反射、Annotation与aop技术文档 反射、Annotation与aop技术文档,
详细讲解了java反射技术,简单易懂,可以很轻松的学习java的反射机制
反射获取Class类对象的三种方法 2.1 通过全类名的方式获取 2.2 类名.class 2.3 实例对象.getClass() 2.4 总结 3. 反射获取属性变量 3.1 获取所有public修饰符的成员变量 3.2 获取指定字段并赋值 3.3 获取...
Java反射案例 jsp反射调用 一个不错的例子 共大家学习
提高C#利用反射类的技术实现sql动态增删改查源代码,利用反射对象技术在VS上实现SQL数据库的动态增删改查的实例。
.Net的在线升级的案例插件接口加反射的技术与与代码
反射本身是JAVA 语言的特性,使JAVA 语言有一种在运行时态自“自观”的能力。而 其他面向对象的语言却没有类似的功能。
Java反射技术指的是在运行时动态地获取类的信息、调用对象的方法、操作类的属性等能力。通过反射,程序可以在运行时检查类、实例化对象、调用方法、获取和设置属性,甚至可以动态修改类的结构。 Java反射技术的核心...
常用的技术中的反射技术,上面有很详细的讲解
Java基础加强_框架的概念及用反射技术开发框架的原理
本资源主要解决两个问题,一是通过类名的字符串创建相应的类的实例化,二是通过属性的名字字符串类操作相应的类的属性。比如:有一个类TestA,我们如何通过类名称字符串“TestA”来生成类的对象?我们可以怎样来访问...