首页 > 其他分享 >反射

反射

时间:2024-06-20 16:21:30浏览次数:26  
标签:反射 Star 对象 代理 接口 参数 class

作用:
1.获取任意一个类中的所有信息
2.结合配置文件动态创建对象

使用:
1.获取class字节码文件对象。 Class.former("全类名") | 类名.class | 对象.getclass()
2.获取所有的成员变量。
get:获取 set:设置 Constructor:构造方法 Parameter:参数 Field:成员变量 Modifiers:修饰符 Method:方法 Declared:私有的

动态代理: 调用者 -> 代理 -> 对象
调用者:
//1. 获取代理的对象
BigStar bigStar = new BigStar("鸡哥");
Star proxy = ProxyUtil.createProxy(bigStar);
//2. 调用唱歌的方法
String result = proxy.sing("只因你太美");
System.out.println(result);
代理:
代理里面就是对象要被代理的方法,代理和对象实现同一个接口,接口中就是被代理的所有方法
Star star = (Star) Proxy.newProxyInstance(
ProxyUtil.class.getClassLoader(),//参数一:用于指定用哪个类加载器,去加载生成的代理类
new Class[]{Star.class},//参数二:指定接口,这些接口用于指定生成的代理长什么,也就是有哪些方法
//参数三:用来指定生成的代理对象要干什么事情
new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
/*
* 参数一:代理的对象
* 参数二:要运行的方法 sing
* 参数三:调用sing方法时,传递的实参
* */
if("sing".equals(method.getName())){
System.out.println("准备话筒,收钱");
}else if("dance".equals(method.getName())){
System.out.println("准备场地,收钱");
}
//去找大明星开始唱歌或者跳舞
//代码的表现形式:调用大明星里面唱歌或者跳舞的方法
return method.invoke(bigStar,args);
}
}
);
对象:
接口public interface Star {}
对象继承接口public class BigStar implements Star {}

标签:反射,Star,对象,代理,接口,参数,class
From: https://www.cnblogs.com/elijahw/p/18258920

相关文章

  • Web渗透:XSS-反射型&存储型
    跨站脚本攻击(Cross-SiteScripting,XSS)是一种常见的网络安全漏洞,它允许攻击者将恶意脚本注入到网页中,其他用户在浏览这些页面时,可能会执行这些恶意脚本,从而导致各种安全问题,如窃取用户信息、会话劫持等。产生原因:XSS漏洞其实就是一个前端漏洞,产生的根本原因是未对用户输入进行......
  • 【SkiaSharp绘图05】SKPaint详解(三)之ImageFilter(颜色、组合、膨胀、移位、光照、反射
    文章目录ImageFilterCreateColorFilter颜色滤镜CreateCompose滤镜组合CreateDilate膨胀滤镜CreateDisplacementMapEffect移位映射CreateDistantLitDiffuse光照CreateDistantLitSpecular反射光照CreateDropShadow阴影效果CreateDropShadowOnly只阴影效果CreateErod......
  • [图解]《分析模式》漫谈07-反射,不是映射
    100:00:00,780-->00:00:04,910今天我们来说一个反射不是映射的问题200:00:07,220-->00:00:11,300在第2章里面有这么一段话300:00:11,550-->00:00:14,730这里提到两个词400:00:14,740-->00:00:16,050一个是reflection500:00:17,560-->00:00:18,490一个......
  • 【Java】 反射机制及其应用
    >>【痕迹】QQ+微信朋友圈和聊天记录分析工具>>(1)纯Python语言实现,使用Flask后端,本地分析,不上传个人数据。>>(2)内含QQ、微信聊天记录保存到本地的方法,真正实现自己数据自己管理。>>(3)数据可视化分析QQ、微信聊天记录,提取某一天的聊天记录与大模型对话。>>下载地......
  • golang reflect 反射机制的使用场景
     Go语言中的reflect包提供了运行时反射机制,允许程序在运行时检查和操作任意对象的数据类型和值。 以下是reflect包的一些典型使用场景: 1.动态类型判断与转换:当需要处理多种类型的变量且具体类型直到运行时才能确定时,可以使用反射来检查变量的实际类型,并在可能的情况......
  • 探索Java的奥秘:网络编程、反射与注解的深度解析
    Java,作为一门功能强大的编程语言,在网络编程、反射和注解方面提供了丰富的支持和灵活的应用。本文将深入探讨这些概念,并通过实际例子来加深理解。一、Java网络编程1.1网络编程基础网络编程是Java语言的一大亮点,它允许我们创建能够通过网络进行通信的程序。Java提供了java......
  • Java-15_反射
    文章目录1.反射(Reflection)概念1.1反射的出现背景1.2反射概述1.3Java反射机制研究及应用1.4反射相关的主要API1.5反射的优缺点2.理解Class类并获取Class实例2.1Class2.2获取Class类的实例(四种方法)2.3哪些类型可以有Class对象2.4Class类的常用方法3.类的......
  • Unity反射的几种方式
    1.利用额外的相机将反射的内容渲染到RenderTargetTexture上 参考:<Unity入门精要>10.2.1节原理很简单,以反射面(例如镜子)为中心,创建一个相机,处于主相机在镜子中反射的位置,用脚本实时更改相机位置与朝向这个相机渲染的内容不直接输出到屏幕,而是输出到一张RTT上然后再将......
  • GE VME5565 VMIVME-5565-11000 332-015565-110000 P 反射式内存节点卡
    VME5565VMIVME-5565-11000332-015565-110000P规格:接口:VMEbus。通道数:16。模拟输入分辨率:16位。模拟输出分辨率:16位。数字I/O:32行。工作温度范围:-40℃~+85℃。输入电压:5VDC。内存配置:可配置为94MB或1108MB的SDRAM。数据传输速率:最高170兆字节/秒。系统节点数:支......
  • .NET Core中灵活使用反射
    前言前段时间有朋友问道一个这样的问题,.NETCore中如何通过Attribute的元数据信息来调用标记的对应方法。我第一时间想到的就是通过C#反射获取带有CustomAttribute标记的类,然后通过依赖注入(DI)的方式获取对应服务的方法并通过反射动态执行类的方法,从而实现更灵活的编程方式。......