复习一下java的反射

来源:互联网 发布:麦克风测试软件汉化 编辑:程序博客网 时间:2024/05/16 12:51

这几天看spring源码,里面用了大量的反射,动态代理等技术.在这复习一下以前的知识;

网上搜的反射的概念:

1.主要是指程序可以访问,检测和修改本身的一种能力,根据自身行为状态和结果,作出相应的修改;

反射机制的作用:

反编译:1 .class->.java ,通过反射的机制访问对象属性,方法,构造方法

获取class的方式

// 第一种方式 Class.forName(实体)的方式Class<?> forName = Class.forName("Student");// 第二种是实体.class的方式Class<?> a = Student.class;// 第三种是对象getClassStudent s1 = new Student();
//获取实体类的无参构造方法Object newInstance = forName.newInstance();//获取所有的方法Field[] declaredFields = forName.getDeclaredFields();//定义一个stringbufferStringBuffer sb =new StringBuffer();sb.append(Modifier.toString(forName.getModifiers())+"class"+forName.getSimpleName()+"{/n");   for(Field field:declaredFields){                 sb.append("\t");//空格                 sb.append(Modifier.toString(field.getModifiers())+" ");//获得属性的修饰符,例如public,static等等                 sb.append(field.getType().getSimpleName() + " ");//属性的类型的名字                 sb.append(field.getName()+";\n");//属性的名字+回车             }     sb.append("}");                   System.out.println(sb);    




原创粉丝点击