`
zds420
  • 浏览: 197962 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Java反射Class 对象

    博客分类:
  • J2SE
 
阅读更多
package com.study.reflect;

public class ReflectionDemo01 {
	
	public static void main(String []args) {
		
		
		//以下都是程序在《《《运行时》》》》
		
		String str="学习java反射机制";
		//java为任何类都可以拥有类class生成对应的Class对象 
		//可以使用 class  :1) getClass() 方法  2)返回泛型   getSupperClass返回父类对象
		System.out.println(str.getClass());	//class java.lang.String
		
		//反射有以下几种方法加载任何类的对象到JVM中,且通过类加载器加载到内存
		//方法一:使用Class<?>  cla= xxx.getClass()方法
		Integer inte= new Integer(100);
		System.out.println(inte.getClass());//class java.lang.Integer
		Double doub= new Double(100.0);
		System.out.println(doub.getClass());
		
		
		
		//方法二:Class.forName(); 运行时加载类到jvm
		try{
			Class<?> clazz=Class.forName("java.lang.Class");	//返回Class<?>泛型
			System.out.println(clazz);
			
			Class<?> cla= Class.forName("java.awt.font.GlyphMetrics");
			System.out.println(cla);
		}
		catch(ClassNotFoundException e) {
			e.printStackTrace();
		}
		
		//方法三:使用 Class  类名.class 加载
		System.out.println(Boolean.class); //class java.lang.Boolean
		System.out.println(Thread.class); //class java.lang.Thread
		
		//方法四:使用getSupperClass 返回父类对象 Class类中的方法,返回该Class的父类的Class
		
		//方法五:--运用primitive wrapper classes的TYPE语法: 基本类型包装类的TYPE,如:Integer.TYPE
       // 注意:TYPE的使用,只适合原生(基本)数据类型
		
		System.out.println(Integer.TYPE); //int
		System.out.println(Double.TYPE); //double
		
		///总结:
		///在使用反射的时候,一般使用前三种方法,最常用的也是Class.forName() ,类名.class 作为加载类的
		
		///在程序使用反射中需要有如下的步骤:
		//Step 1: 使用Class.forName(),类名.class 加载类到jvm载入内存
		//Step 2: 运行时实例化(Instace);实例化类有种实现方式
					//A:类的实例化不带参数的构造方法 使用Class类的newInstace()方法直接实例化类。是不带参数的构造方法
		            //B:类的实例化有带参数的构造方法 使用Constructor类的getConstructor()方法传递参数
		                   //使用带参数的构造方法首先需要准备 Class[] constructor的参数类型
		                   //在使用Class getConstructor() 的专属于Constructor对象
		                   //最后使用Object[] 对象的作为Constructor对象 newInstace()传递实参。
		
		////////////////////////////备注注意///////////////////////////////////
		//在这里需要说明的是 只有两个类拥有newInstance()方法,分别是Class类和Constructor类
		//Class类中的newInstance()方法是不带参数的,而Constructro类中的newInstance()方法是带参数的
		//需要提供必要的参数。
		///////////////////////////////////////////////////////////////////////////////
			
				//例如:
				// Class clazz = Class.forName("TestReflection");
				// Class[] classtype= new Class[]{Integer.class,String.class};
				// Constructor constr= clazz.getConstructor(classtype);
				// Object[] obj= new Object[]{100,"反射的使用带参数"};
				// Object objinstace= constr.newInstace(obj);
				//System.out.println(objinstace);
		
		//Step 3: 运行时调用Method 方法
		
		//Step 4: 运行时调用Field 方法

	}
}

 

分享到:
评论

相关推荐

    JAVA反射机制-Class类-Class对象的获取.pdf

    JAVA反射机制-Class类-Class对象的获取.pdf

    Java反射获取class对象方式解析

    主要介绍了Java反射获取class对象方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    JAVA反射机制动态调用 计算器对象的加法,减法函数;JAVA反射机制修改一个学生对象 的私有数据成员

    使用JAVA反射机制动态调用 计算器对象的加法,减法函数。 使用JAVA反射机制修改一个学生对象 的私有数据成员(不允许调用setters) 使用的类有Class, Method, Field

    JAVA反射机制详解视频

    (获取class文件对象的三种方式) (通过反射获取无参构造方法并使用) (通过反射获取带参构造方法并使用) (通过反射获取私有构造方法并使用) (通过反射获取成员变量并使用) (通过反射获取无参无返回值成员方法并使用) ...

    java反射知识点

    1.获取Class对象的三种方式 2.获取构造方法并调用 3.获取成员方法 4.获取成员变量 5.反射数组 6.通过反射配置文件内容 7.通过反射越过泛型检查 8.其他一些文本笔记 读者需要补充的知识点我来说一下,补充: 1.反射...

    java反射.ppt

    每当一個类被载入时,JVM就自动为其生成一个Class对象,通过操作class对象,我们可以得到该对象的所有成员并操作它们 public class ClassDemo { public static void main(String[] args) { String name = “ACCP"; ...

    Class对象和Java反射机制

    其实从某种意义上说,在java中有两种对象:实例对象和Class对象。实例对象是我们平常定义的一个类的实例:  /**  * Created by aristark on 3/28/16.  */  public class Person {  }  然后利用new关键字...

    java习题-反射-chap15.pdf

    Chp15 反射Key Point ●Class 对象及其基本操作●Method 对象以及invoke 方法●标注练习 1. (类对象)要获得类对象,有三种不同的方式,分别为_____________________、___________________、_____________________...

    java反射 反编译:.class--&gt;.java

    二,反射机制的作用: 1,反编译:.class--&gt;.java 2,通过反射机制访问java对象的属性,方法,构造方法等; 这样好像更容易理解一些,下边我们具体看怎么实现这些功能。

    Java常用的反射方法

    反射获取Class类对象的三种方法 2.1 通过全类名的方式获取 2.2 类名.class 2.3 实例对象.getClass() 2.4 总结 3. 反射获取属性变量 3.1 获取所有public修饰符的成员变量 3.2 获取指定字段并赋值 3.3 获取...

    Java 反射(Reflection) 经典实用例子

    Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射。反射机制是如今很多流行框架的实现基础,其中包括Spring、Hibernate等。原理性的问题不是本文的重点,接下来让我们在实例中...

    Java反射机制——类的加载方法,创建对象,获取方法以及结构

    一、java反射机制概述 Reflection (反射)被视为动态语言的关键,为什么这么说呢,是因为它在运行时就确定下来了。反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的...

    Java反射机制,通过对象访问调用类的私有成员或方法

    Java反射机制,万物皆对象,class也是一个类的对象,通过类类型,反射获得类的成员属性,构造方法,成员方法,并调用类中的方法,也可以调用私有方法。

    java反射机制的ppt

    什么是反射 Class类的介绍 如何用Class类获得类的构造方法、成员属性、成员方法 利用java反射机制动态创建对象 利用java反射机制动态调用成员方法和改变成员变量

    Java高级程序设计实战教程第三章-Java反射机制.pptx

    3.2.3 Java反射机制的相关API java.lang.reflect包提供了用于获取类和对象的反射信息的类和接口。反射API允许对程序访问有关加载类的字段,方法和构造函数的信息进行编程访问。它允许在安全限制内使用反射的字段,...

    java 反射简单用例

    java反射的用例代码 // //获取类对象的属性 // Field field = clazz.getDeclaredField("name"); // System.out.println(field); // // Method method = clazz.getDeclaredMethod("getName", new Class[]{}); // ...

    Java基础[08-反射].ppt

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...

    Java反射学习和反射的应用场景干货都在这里

    文章目录一、Java反射定义二、Java反射机制实现1、Class对象获取2、获取class对象的摘要信息3、获取class对象的属性、方法、构造函数等三、反射的应用场景1、动态代理2、自定义注解实现日志管理 写在前面:Java反射...

    基础深化和提高-java反射技术

    Java反射技术指的是在运行时动态地获取类的信息、调用对象的方法、操作类的属性等能力。通过反射,程序可以在运行时检查类、实例化对象、调用方法、获取和设置属性,甚至可以动态修改类的结构。 Java反射技术的核心...

    java 反射Reflection;Class类

    1.反射机制概述 java能够反射的前提:已经加载过这个类 反射可以通过类名来寻找这个类的所有相关信息、类似于人类的记忆,事先在记忆中有了这个事物的信息,人就可以通过名字来在记忆中寻找事物的具体...java反射机制的

Global site tag (gtag.js) - Google Analytics