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();
}
}