首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

SSH 第一回 利用反射机制进行反编译

2012-09-05 
SSH 第一次利用反射机制进行反编译1.什么是java的反射机制reflection 反射机制是java被视为具备动态语言特

SSH 第一次 利用反射机制进行反编译
1.什么是java的反射机制
  reflection 反射机制是java被视为具备动态语言特质的关键技术。
  动态语言:在运行时能够改变程序结构和参数类型
  反射:程序在运行过程中能够查看类自身的信息以及调用对象的方法


2.反射的作用和原理
  2.1 作用
      1.反编译
      2.动态性
     
  2.2 原理
      Class类 类类 是反射机制源泉入口
      jvm加载.class文件的时候运行时,会为该文件创建一个
      Class对象与之对应
      我们就可以通过该Class对象来查看类的信息(反编译)

3.学会java反射API的基本操作(重点 务必理解掌握)
  着重掌握API(java.lang.reflect)
  Class类        
  Method类
  Field类
  Constructor类
 
  3.1 创建类的对象
      第一步 创建Class类
      第一种:通过类的全称字符串来创建(最常见使用最多)
      Class c1 = Class.forName("包名+类名");
      第二种:通过类名.class来创建
      Class c1 = String.class;
     
      第三种:通过对象的getClass()方法来创建
      User user = new User();
      Class c1 = user.getClass();
     
      第四种:通过调用父类的Class对象来创建
     
      第二部 通过Class类实例化该类对象
      Object obj = c1.newInstance();
     
      特殊情况:
      以上创建方法只针对提供无参构造方法的javaBean
      Constructor constrctor = c4.getConstructor(new Class[]{String.class});
      User user4 = (User)constrctor.newInstance(new Object[]{"123"});

  3.2 调用对象方法
      1.Method[] methods = c1.getMethods();
      2.Method[] methods = c1.getDeclaredMethods();
      3.Method method = c1.getMethod("getName", new Class[]{});
      String name = (String)method.invoke(user, new Object[]{});
 
 
  3.3 给属性赋值
      Field field = c1.getField("name");
      Field[] fields = c1.getDeclaredFields();

4.实例 通过反射API拷贝一个对象

热点排行