今天专门看了下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();
转载于:https://blog.51cto.com/3310819/1246359