在使用反射的过程中,我们往往要创建某个类型的Class类的对象,有3种方法。
假设我们要创建一个 java.util.ArrayList
类型的Class类的对象。
详见如下代码:
public class Test1 { public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException { // 反射中Class类对象的创建方式1 // 注意:需要强制类型转换 Class<ArrayList> c = (Class<ArrayList>) Class.forName("java.util.ArrayList"); // 反射中Class类对象的创建方式2 // 注意:不用强制类型转换 c = ArrayList.class; // 反射中Class类对象的创建方式3 // 注意:需要强制类型转换 ArrayList arrayList = new ArrayList(); c = (Class<ArrayList>) arrayList.getClass(); // 通过ArrayList类型的Class类对象获取ArrayList类对象的方法 // 注意:不用强制类型转换 arrayList = c.newInstance(); } }