`
chentingk
  • 浏览: 19979 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

反射类,反射技术

 
阅读更多

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());
		
	}
	
	

}

 私有的构造方法不能在类外创建对象,但是反射技术可以使得它可以冲破这个权限。

分享到:
评论

相关推荐

    反射技术+简单工厂模式

    结合反射技术与简单工厂模式,我们可以在不预先知道具体类的情况下,利用反射动态地确定要实例化的类,然后通过工厂方法来创建对象。这种组合方式可以提高代码的灵活性,特别是在需要动态改变创建对象的逻辑时,例如...

    采用反射技术和XML的通用实体类

    本文将深入探讨如何结合反射技术和XML来实现通用实体类,并解释这两个技术在这一过程中的作用。 首先,让我们了解什么是反射技术。在Java中,反射是一种强大的工具,它允许程序在运行时检查和操作其他类、接口、...

    反射类使用.rar

    - **框架和库**:Spring框架中的依赖注入,MyBatis中的SQL映射,以及各种测试框架(JUnit, TestNG)都广泛使用反射技术。 总之,这个压缩包中的“反射Test”和“反射”文件可能包含了如何创建、访问和修改类、方法...

    java的类反射

    5. 框架开发:Spring框架的依赖注入、Hibernate的数据持久化等都大量使用反射技术。 然而,反射也存在性能开销,因为它涉及了JVM的安全检查和额外的内存分配。因此,在不需要动态性或性能至关重要的情况下,应尽量...

    java 利用反射获取内部类静态成员变量的值操作.docx

    本文将详细介绍如何使用Java反射技术来获取内部类中的静态成员变量的值。 #### 二、背景知识 在深入探讨之前,我们需要了解几个基本概念: 1. **内部类**:内部类是一种特殊的类,定义在另一个类(外部类)的内部。...

    反射实例 帮助你透彻理解反射技术 .net

    在.NET框架中,反射是一种强大的工具,它允许程序在运行时检查自身并...同时,`AssiamlyTest`这样的示例资源对于学习和实践反射技术是非常宝贵的。理解并熟练运用反射,将极大地提升我们的编程能力和解决问题的效率。

    C#+实体类反射+初阶

    本主题聚焦于"C#+实体类反射+初阶",它涉及到如何利用C#的反射特性来自动化数据操作,以及如何结合XML进行数据存储。反射是.NET框架中的一个强大工具,它允许程序在运行时检查自身的行为,包括获取类型信息、创建...

    ehcache 测试 反射类 例子

    在这个“ehcache测试反射类例子”中,我们将探讨如何结合使用Ehcache和Java的反射机制。 首先,让我们理解Ehcache的核心概念。Ehcache提供了一个内存缓存系统,允许我们在内存中存储对象,这样当需要这些对象时,...

    反射私有内部类的例子

    ### 反射私有内部类的例子 #### 一、引言 在Java编程语言中,反射(Reflection)是一项强大的功能,允许程序在运行时检查和修改自身结构与行为。...希望本文能帮助大家更好地理解和运用反射技术。

    C#net反射实现访问类中的私有变量或者方法

    在本篇文章中,我们将深入探讨如何利用C#中的反射...然而,由于其可能导致的安全性问题和性能开销,应当谨慎使用反射技术。在实际开发过程中,开发者需要根据项目的具体需求来决定是否使用反射,以及如何恰当地使用它。

    jsp 反射技术例子

    在JSP(Java Server Pages)中,反射技术的应用可以帮助开发者在运行时动态地获取类的信息,调用方法或访问字段,这对于处理动态数据和构建灵活的系统非常有用。下面我们将深入探讨这个"jsp 反射技术例子"。 在Java...

    Java反射动态加载实例类

    ### Java反射机制与动态加载实例类 在Java中,反射是一种强大的工具,允许程序在运行时检查和修改其结构和行为。通过反射,我们可以动态地加载类、创建...因此,在实际开发中,应当根据具体情况权衡是否使用反射技术。

    基于光频域反射技术的超弱反射光纤光栅传感技术研究

    采用超弱反射光纤光栅(FBG)结合光频域反射技术(OFDR),实现了大容量、高空间分辨率的准分布式光纤光栅传感网络的解调。通过对拍频信号分离的优化和非线性矫正,利用拍频信号的频谱信息,实现了高空间分辨率的光纤...

    通过反射获得实体类的字段和值

    反射是一种强大的编程技术,允许运行时动态地获取类型的信息并操作对象。它提供了对程序集、模块、类型、方法、属性、事件、字段等进行查询和操作的能力。在.NET中,反射主要由System.Reflection命名空间下的类提供...

    java反射例子,封装了一个反射帮助类

    Java反射是Java编程语言中的一个重要特性,它允许运行时访问和操作类、接口、字段和方法等信息。在Java中,反射提供了动态类型的...在实际开发中,反射常用于插件系统、序列化、框架设计等场景,是一种非常重要的技术。

    .NEt插件反射的技术

    .NET插件反射技术是.NET框架中一种强大的编程机制,它允许程序在运行时动态地发现、加载和交互对象。在.NET的在线升级案例中,插件反射技术扮演着至关重要的角色,使得应用程序能够灵活地加载新功能或者更新现有功能...

    java反射技术ppt

    Java反射技术是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、对象以及它们的方法和属性。通过反射,开发者能够获取关于类的信息,并且能够在运行时动态地创建对象和调用方法,这为编程带来...

    Java反射技术的一般应用

    在向学生讲解Class.forName()方法的使用时,有时需要扩展讲解为什么这样书写的原理,于是,扩展讲解Java反射技术可以查看被监视类的方法(构造方法和普通方法)、公有属性的功能,以达到封闭功能的效果。该例子使用...

    反射工具可查看类的很强大

    而“Color”可能表示一个与颜色相关的类,可能是用来演示反射技术的一个实例。 通过反射,我们可以实现以下功能: 1. **动态加载类**:在运行时根据需要加载未知类的字节码,无需在编译时硬编码类名。 2. **实例...

    JDBC_Java反射技术入门

    在这个“JDBC_Java反射技术入门”资源中,初学者可以了解到如何使用Java进行数据库操作的基础知识,包括连接数据库、执行SQL语句、处理查询结果等。 1. **JDBC基础**: - **加载驱动**:在使用JDBC之前,我们需要...

Global site tag (gtag.js) - Google Analytics