最近多次遇到“反射”这个词,但是在自己的大脑中貌似并没有相关信息,于是百度了一下java中的这种反射机制。
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
举个小例子吧:
public class ReflectDemo {
public static void main(String args[]) throws Exception{
//对于任意一个类,都能够知道这个类的所有属性和方法;
//对于任意一个对象,都能够调用它的任意方法和属性
//获取类的方式一
Class c1 = Class.forName("java.lang.String");
//获取类的方式二
//Class c2 = String.class;
//获取类的方式三
//String str = new String();
//Class c3 = str.getClass();
Object obj = c1.newInstance();//创建此Class对象所表示的类的一个新实例
//获取所有的属性
Field[] fs = c1.getDeclaredFields();
for(Field f:fs){
System.out.println(f.getName());
}
}
}
参考:
JAVA中的反射机制