Java基础:反射小结


目录
  • 1 反射使java中的所有访问权限控制失去了作用!
  • 2 反射中Class类对象的创建方式

1 反射使java中的所有访问权限控制失去了作用!

通过反射,我们能访问任何类的任何成员(包括成员变量和成员方法),能修改任何类的任何成员变量(final变量除外),也能执行任何类的成员方法。

2 反射中Class类对象的创建方式

在使用反射的过程中,我们往往要创建某个类型的Class类的对象,有3种方法。
假设我们要创建一个 java.util.ArrayList 类型的Class类的对象。

详见如下代码:

public class Test1 {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {

        // 反射中Class类对象的创建方式1
        //   注意:需要强制类型转换
        Class c = (Class) Class.forName("java.util.ArrayList");
        // 反射中Class类对象的创建方式2
        //   注意:不用强制类型转换
        c = ArrayList.class;
        // 反射中Class类对象的创建方式3
        //   注意:需要强制类型转换
        ArrayList arrayList = new ArrayList();
        c = (Class) arrayList.getClass();
        // 通过ArrayList类型的Class类对象获取ArrayList类对象的方法
        //   注意:不用强制类型转换
        arrayList = c.newInstance();
    }
}