`
zds420
  • 浏览: 203789 次
  • 性别: 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对象的获取 #### 概述 在Java语言中,反射是一种强大的功能,允许程序在运行时动态地检查和修改自身的行为。这种能力是通过`java.lang.Class`类实现的,它提供了封装类或接口...

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

    Java反射获取class对象方式解析 Java反射获取class对象方式解析是Java反射机制中的一种重要技术,它可以帮助开发者在运行时获取类的信息和对象实例。下面我们将通过示例代码详细介绍Java反射获取class对象方式解析...

    Java中通过Class类获取Class对象的方法详解

    * 反射机制:通过Class对象可以获取类的所有信息,例如字段、方法、构造函数等,可以用于反射机制。 * 动态加载类:通过Class类中的forName()方法可以动态加载类,实现动态加载类的功能。 * 依赖注入:通过Class对象...

    java反射,获取所有属性、方法以及List集合类

    总结来说,Java反射提供了一种动态操控Java对象的能力,允许我们在运行时发现和改变类的行为。虽然它强大且灵活,但也应谨慎使用,因为它可能会降低代码的可维护性和安全性。在实际开发中,反射常用于框架、插件系统...

    java反射 java反射 java反射java反射

    Java反射是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并操作类的对象。在Java中,反射机制提供了强大的能力,包括在运行时检查类的结构、创建对象实例、调用方法以及访问和修改字段值。...

    java反射机制 字符串——java对象

    Java反射机制是Java语言提供的一种强大功能,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类是`java.lang.Class`,它代表了运行时的类信息。通过Class对象,我们...

    Java中Class对象详解共2页.pdf.zip

    Java中的Class对象是Java反射机制的核心,它代表了运行时的类信息。通过Class对象,我们可以在程序运行期间动态地获取类的各种属性、方法和构造器等信息,甚至可以实例化对象,使得Java具备了高度的灵活性和动态性。...

    利用java反射将json字符串转成对象.zip

    在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON字符串转换为Java对象。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...

    JAVA反射机制的入门代码

    Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用私有方法...

    java 反射得到某个方法

    在本文中,我们将深入探讨如何使用Java反射来获取并执行某个特定的方法。 首先,我们需要了解Java反射的基本概念。`java.lang.Class`类是反射的核心,它代表了Java中的每一个类。我们可以通过以下方式获取到一个...

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

    Java反射机制是Java语言提供的一种强大功能,它允许我们在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个机制在处理不确定类型或者需要灵活操作类的场景中非常有用。在这个...

    Java反射经典实例

    1. 获取Class对象 - 使用`Class.forName("类全名")`,如`Class&lt;?&gt; clazz = Class.forName("java.util.ArrayList");` - 对象的`getClass()`方法,如`String str = "Hello"; Class&lt;?&gt; clazz = str.getClass();` - ...

    java面试题--反射机制

    `Class`类在Java反射机制中扮演着核心角色,它是所有Java类的运行时表示。`Class`对象可以由以下几种方式获取: 1. **通过类的`Class`属性获取**:如`String.class`。 2. **通过对象的`getClass()`方法获取**:如`...

    Java反射性能测试分析

    Java反射机制是Java编程语言中一个强大的特性,它允许程序在运行时动态地访问、检测和修改类、接口、字段和方法等对象。然而,反射操作通常会引入额外的开销,这在性能敏感的应用场景下可能成为一个瓶颈。本文将深入...

    JAVA 反射机制应用

    Java反射机制是Java语言提供的一种强大功能,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类是java.lang.Class,它代表了运行时的类信息。通过Class对象,我们...

    Java中Class对象详解.docx

    Java中的Class对象是Java反射机制的核心,它代表了一个类的信息,包括类的名称、属性、方法等。在Java中,每个类都有一个对应的Class对象,它由Java虚拟机(JVM)在类加载时创建。了解Class对象的生成方式和原理对于...

    Java反射简单例子

    Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制主要用到了java.lang.Class、java.lang.reflect.Method、java.lang.reflect....

    应用java反射机制打印一个对象.docx

    Java 反射机制在对象打印中的应用 Java 反射机制是 Java 语言中的一种强大工具,允许程序在运行时检查和修改对象的行为。下面我们将讨论如何使用 Java 反射机制来打印一个对象的所有属性值。 Java 反射机制的概念 ...

    Java反射机制 Java反射机制

    ### Java反射机制详解 #### 一、Java反射机制概述 Java反射机制是Java语言的一个重要特性,它允许程序在运行时获取类的信息并操作对象。Java反射机制的主要作用包括:获取类的所有属性和方法、构造动态实例、调用...

Global site tag (gtag.js) - Google Analytics