JAVA 反射机制的使用

反射机制
反射机制是在程序运行状态中,对于任意一个类,都能够获取这个类的所有属性和方法;
也可以利用反射机制生成一个类的对象;
对于任意一个对象,都能够调用它的任意一个方法和属性及为属性赋值;
可以实现简单的反编译,获取类中的属性和方法等基本信息,.class—>java
这种动态获取信息以及动态调用对象的方法的功能称为java语言的反射机制。

利用反射机制创建一个类的对象

Class c = Class.forName("包名.A");
Object o = c.newInstance();//即创建一个A类的对象,与A a = new A();效果相同

利用反射机制获取类的属性值及为其赋值

		Class class1  = Class.forName("Reflect.Person");	
		Object o = class1.newInstance();
		Field f = class1.getDeclaredField("age");//这里的age是Person类的一个属性名称
		f.setAccessible(true);//若age的修饰符为private,则打破封装性
		f.set(o, 20);//为其赋值
		System.out.println(f.get(o));//输出该对象age属性值

反射机制的常用其他方法
Class对象常用调用的方法

getDeclaredMethod(String name, Class<?>… parameterTypes) 返回值为 Method 该方法用于获取某个类里的指定方法 (非构造方法)
getDeclaredMethods() 返回值为 Method[] ,即该类的所有方法(非构造方法)
getDeclaredConstructors() 返回值为Constructor[] ,即该类的所有构造方法
getInterfaces() 返回值为Class[] ,表示该类的所有接口
getSuperclass() 得到其父类对象
getName() 返回包名.类名
getSimpleName() 返回类名
getModifiers() 返回值为Int,表示该类的修饰符通常与Modifier.toString(int mod)联合使用

Method对象调用的方法

getReturnType() 返回值为Class 即返回该方法的返回类型
getModifiers() 返回值为int ,表示该方法的修饰符通常与Modifier.toString(int mod)联合使用
getName() 返回方法名
getParameterTypes() 返回值为Class[] ,即返回该方法所有的参数类型
发布了60 篇原创文章 · 获赞 10 · 访问量 9201

猜你喜欢

转载自blog.csdn.net/chaseqrr/article/details/103831275