Class类 获取Class对象

阅读API的Class类得知,Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的

获取Class对象的三种方式(实例采用Person类)

方式1:通过Object类的getObject()方法   

Person p = new Person();
Class c = p.getClass();

方式2: 通过 类名.class 获取到字节码文件对象(任意数据类型都具备一个class静态属性,看上去要比第一种方式简单)。

 

Class c2 = Person.class;

  

方式3: 通过Class类中的方法(将类名作为字符串传递给Class类中的静态方法forName即可)。

   

Class c3 = Class.forName("Person");

  

l 注意:第三种和前两种的区别

前两种你必须明确Person类型.

后面是指定这种类型的字符串就行.这种扩展更强.我不需要知道类名.我只提供字符串,按照配置文件加载就可以了

代码演示:

public class ReflectDemo {
	public static void main(String[] args) throws ClassNotFoundException {
		//通过Object类的getObject()方法   
		Person p = new Person();
		Class c1 = p.getClass();
		System.out.println(c1);

		//类名.class 获取到字节码文件对象
		Class c2 =Person.class;
		System.out.println(c2);

		//通过Class类中的方法forName()
		Class c3 = Class.forName("cn.shiqi.demo1.Person");
		System.out.println(c3);
	}
}

  

class Person{

}

  

   

时间: 2024-10-09 17:46:47

Class类 获取Class对象的相关文章

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

方式1:通过Object类的getObject()方法 Person p = new Person(); Class c = p.getClass(); 方式2: 通过 类名.class 获取到字节码文件对象(任意数据类型都具备一个class静态属性,看上去要比第一种方式简单). Class c2 = Person.class; 方式3: 通过Class类中的方法(将类名作为字符串传递给Class类中的静态方法forName即可) Class c3 = Class.forName("Person

获取applicationContext对象的方法

方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); ac.getBean("beanId"); 说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况. 方法二:通过Spring提供的工具类获取ApplicationConte

获取数据库连接对象的工具类

mysql连接对象 jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/查找的文件jdbc.user=rootjdbc.password=自己设置的密码 oracle连接对象 jdbc.driver=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@localhost:1521:orcljdbc.user=scottjdbc.password=

获取class对象的三种方法以及通过Class对象获取某个类中变量,方法,访问成员

public class ReflexAndClass { public static void main(String[] args) throws Exception { /** * 获取Class对象的三种方式 * 1 Object --> getClass(); * 2 任何数据类型(包括基本数据类型)都有一个静态的class属性 * 3 通过Class类的静态方法:forName(String className)(常用) * * * 注意:在运行期间,一个类,只有一个Class对象产

《Entity Framework 6 Recipes》中文翻译系列 (45) ------ 第八章 POCO之获取原始对象与手工同步对象图和变化跟踪器

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 8-6  获取原始对象 问题 你正在使用POCO,想从数据库获取原始对象. 解决方案 假设你有如图8-7所示的模型.你正在离线环境下工作,你想应用在获取客户端修改之前,使用Where从句和FirstDefault()方法从数据库中获取原始对象. 图8-7.包含一个单独实体Item的模型 按代码清单8-9的方式,在获取实体之后,使用新值更新实体并将其保存到数据库中. 代码清单8-9. 获取最新

获取Class对象的三种方式

1:通过每个对象都具备的方法getClass来获取.弊端:必须要创建该类对象,才可以调用getClass方法. 2:每一个数据类型(基本数据类型和引用数据类型)都有一个静态的属性class.弊端:必须要先明确该类. 前两种方式不利于程序的扩展,因为都需要在程序使用具体的类来完成. 3:使用的Class类中的方法,静态的forName方法. 指定什么类名,就获取什么类字节码文件对象,这种方式的扩展性最强,只要将类名的字符串传入即可. // 1. 根据给定的类名来获得  用于类加载 String c

反射获取Class对象的三种方式

import cn.qujianlei.domain.Person; public class ReflectDemo { public static void main(String[] args) throws ClassNotFoundException { /* * * 反射技术:动态的获取类以及类中的成员,并可以调用该类的成员. * 以前有什么类就new什么对象. * 现在没有类,给什么类就new什么对象. * * * 反射技术的出现提高了程序的扩展性 * 反射技术中最重要的一点:先获

Android学习笔记(37):用Configuration类获取和监听设备信息

Configuration类用于描述手机设备上的配置信息.有时候我们的app需要获取手机的系统信息,并根据手机的信息来调整我们的app,这时候我们就需要用到Configuration类. (1)获取Configuration对象 调用Activity的方法获取系统的Configuration对象: Configuration config = getResources().getConfiguration(); (2)获取设备系统信息 在获取了Configuration对象之后,直接访问Conf

Android自定义工具类获取按钮并绑定事件(利用暴力反射和注解)

Android中为按钮绑定事件的有几种常见方式,你可以在布局文件中为按钮设置id,然后在MainActivity中通过findViewById方法获取按钮对象实例,再通过setOnClickListener为按钮绑定事件,如下所示: //1.获取控件 btn = (Button)findViewById(R.id.button1); //2.绑定事件 btn.setOnClickListener(new OnClickListener() { @Override public void onCl