如何获取Class对象

我们可以把每一个类(例如Student类)抽象地理解为一个对象,这些对象所属于的类为Class类

Class类的特点:

  1. 该类在java.lang包中,直接使用无需引包
  2. Class类由final修饰,不可被继承
  3. Class类构造方法由private修饰,只能在本类中使用,所以Class类对象不能通过new关键字创建
  4. Class类实现了Serializable接口

我们可以通过以下六种方式获取到Class类的实例化对象
这里先创建一个Student类,用作试验对象

public class Student{
	
}
public class Test{
	public static void main(String[] args){
		//这里Class类的对象名用clazz是因为class是关键字,不能用作标识符,由于这里是局部变量,需要有初始值,所以给其赋值为null;
		Class clazz = null;
		//1、通过forName方法,传入值为包名+类名,该方法需要捕获异常
		try {
			clazz=Class.forName("venus.Student");
			System.out.println(clazz.getName());
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}		

		//2、通过 类名.class
		clazz = Student.class;
		System.out.println(clazz);
		
		//3、通过 对象.getClass();
		clazz = new Student().getClass();
		System.out.println(clazz);
		
		//4、获取数组对象:元素类型[].class
		clazz = String[].class;
		System.out.println();
		
		//5、获取基本数据类型对应的class对象:基本数据类型包装类.TYPE
		clazz = Integer.TYPE;
		System.out.println(clazz);
		
		//6、获取某个类父类所对应的class对象
		clazz = Student.class.getSuperClass();//或者
		clazz = new Student().getClass().getSuperClass();//或者
		try{
			clazz = Class.forName("venus.Student").getSuperClass();//需要捕获异常
		}catch(ClassNotFoundException e){
			e.printStackTrace();
		}	
		System.out.println(clazz);
		
	}
}

我们运行一下,看一下控制台的输出:
在这里插入图片描述

发布了101 篇原创文章 · 获赞 3 · 访问量 2252

猜你喜欢

转载自blog.csdn.net/S_Tian/article/details/103870377
今日推荐