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);
	}

	
}

猜你喜欢

转载自blog.csdn.net/TDOA1024/article/details/82918606