1. 程式人生 > >java反射機制——三種獲取class物件的方法

java反射機制——三種獲取class物件的方法

package cn.itcast.reflect.demo;

import cn.itcast.bean.demo.Person;

/**
 * 
 * 獲取Class物件的3中方法:
 * 
 * 
 * */

public class ReflectDemo1 {

	public static void main(String[] args) throws ClassNotFoundException {
		
//		getClassObjectMethod_1();
		
//		getClassObjectMethod_2();
		
		getClassObjectMethod_3();
		
	}
	
	/*
	 * 方法三:通過給定的類名的字串名稱就可以獲取class物件,更為擴充套件
	 * 
	 * */
	public static void getClassObjectMethod_3() throws ClassNotFoundException {
		String classname="cn.itcast.bean.demo.Person";
		Class class1=Class.forName(classname);
		Class class2=Class.forName(classname);
		
		System.out.println(class1==class2);
		
	}

	/*
	 * 方法二:任何資料型別都具備一個靜態屬性.class來獲取Class物件
	 * 相對簡單,但是還是要明確到類中的靜態成員,還是不夠擴充套件
	 * */
	public static void getClassObjectMethod_2() {
		Class class1=Person.class;
		Class class2=Person.class;
		System.out.println(class1==class2);
	
	}

	/*方法一:
	 * 通過Object類中的getClass方法
	 * 想用這種方式,必須明確具體的類
	 * 
	 * */
	public static void getClassObjectMethod_1() {
		Person p=new Person();
		Class class1=p.getClass();
		Person p2=new Person();
		Class class2=p2.getClass();
		
		System.out.println(class1==class2);
	}

	
}