java Class对象

今天专门看了下Java中Class 到底是个什么东西。张张个人见识,我们知道Java在运行之前会把文件编译成.class文件。对于每个.class文件都有一个Class对象和他对应,这个对象保存了.class文件中的类信息。你可以通过Class对象来获取你想要的类信息。那么如何来获取Class对象呢,下面介绍几种获取Class对象的常用方法。

1. 如果在本类中,可以通过this.getClass();方法获取。如:Class<?> clazz = this.getClass();

2. 通过对象实例获取,如:Animal an = new Animal(); Class<?> clazz = an.getClass();

3. 通过Class.forName("xxx.xx.类名");

4. 通过对象.class的形式获取。如:Class<Animal> clazz = Animal.class;


接下来我们可以根据获取的Class对该类进行操作了,这里也举个例子吧,就用Class来创建新的实例吧。

创建实例一:含有默认构造函数的情况下。直接用newInstance();

创建实例二:在知道构造函数参数类型的情况下(当然构造函数参数类型可以通过Class获取构造函数,然后获取构造函数参数类型),这里假设已经获取到了class的构造函数参数类型。Animal  anl = clazz.getConstructor(String.class,Integer.class).newInstance();

你可能感兴趣的:(java,Class对象)