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拷贝一个对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值