反射



反射(自省)Java自我管理的机制
Java代码管理Java类和方法等
名词:类       方法        属性    构造器
         Class   Method   Field    Constructor


任何类都是Class实例,类加载到内存中是class实例,是一个对象
 Class cl=Student.class;
 
1.class实例的获取方式
A.Java只按需加载一次
  a.类的.class属性
  b.对象的getClass()方法
  c.Class类的静态方法 Class.forName()

2.class类的作用
 可以由指定的class类的class,可以访问类的类,类的方法、类的属性及类的构造器。
3.Method
Class cs=Class.forName("MyThread");
Method[] ms=cs.getMethods();//获得所有公有方法


执行类Net.TestMethod中,以Test开头的对象。

package Net;

import java.lang.reflect.Method;

public class MethodDemo {

	public static void main(String[] args) throws Exception {
		Class cl=Class.forName("Net.TestMethod");
		Object obj=cl.newInstance();//创建类的实例
		Method[] methods=cl.getMethods();
		for (Method method : methods) {
			if(method.getName().startsWith("Test")){
				method.invoke(obj, new Object[]{});//在对象obj上,执行方法
			}
		}
	}
	
}

你可能感兴趣的:(JAVA基础)