3种方式获得Class对象

package classdemo;

import java.io.Serializable;

/** 提供JavaBean,用于之后反射操作
 * JavaBean规范
 * 1.提供私有字段,例如:private String id;
 * 2.必须提供getter或setter方法
 * 3.提供无参构造方法
 * 4.必须实现序列化接口
 * 		java.io.Serializable
 * 
 */
public class Bean implements Serializable {
	
	private String id;
	private String className;
	public String description;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getClassName() {
		return className;
	}
	public void setClassName(String className) {
		this.className = className;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	public Bean(String id, String className, String description) {
		super();
		this.id = id;
		this.className = className;
		this.description = description;
	}
	public Bean() {
		super();
		// TODO Auto-generated constructor stub
	}
	
}

 

package classdemo;

import org.junit.Test;


public class ClassDemo {
	/* Java提供3种方式获得Class对象
	 * 	* 不同应用场景,需要不同的方式获得Class对象
	 * 
	 * 方式:
	 * 	1.通过字符串(全限定类名)获得
	 * 		格式:Class clazz = Class.forName("字符串");
	 * 		全限定类名:包名 + 类名
	 * 			classdemo.Bean
	 *  2.通过Java类型获得
	 *  	格式:Class clazz = 类型.class;
	 *  3.通过实例对象(变量名)获得
	 *  	格式:Class clazz = obj.getClass();
	 * 
	 * 应用场景:
	 * 	方式1:之后开发中,从配置文件中,获得“全限定类名”,并通过反射进行所有操作。
	 * 	方式2:确定构造方法、普通方法形参列表时,需要通过类型获得。
	 * 		例如:public void init(String s , Integer i){}
	 * 		内存需要通过类型对应Class进行标记,init(String.class , Integer.class)
	 * 	方式3:方法内部通过变量名获得
	 * 		pubilc void init (Object s){
	 * 			s.getClass();
	 * 		}
	 * 
	 */
	
	@Test
	public void demo01() throws Exception{
		// 通过字符串获得
		Class clazz = Class.forName("classdemo.Bean");
		System.out.println(clazz);
	}
	
	@Test
	public void demo02() throws Exception{
		// 通过Java类型获得
		Class clazz = Bean.class;
		System.out.println(clazz);
	}
	
	@Test
	public void demo03() throws Exception{
		// 通过实例对象获得
		Bean bean = new Bean();
		Class clazz = bean.getClass();
		System.out.println(clazz);
	}

}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值