反射
反射:将类的各个组成部分封装为其他对象
通过反射你可以获取任意一个类的所有属性和方法,你还可以调用这些方法和属性。
优点:让代码更加灵活,为各种框架提供开箱即用的功能,可以解耦,提高程序的可扩展性
缺点:增加了安全问题。
反射的应用场合:编译时类型和运行时类型
编译时的类型由声明对象时实用的类型来决定
运行时的类型由实际赋值给对象的类型决定
Java中一大利器注解的实现也用到了反射。
为什么你在Spring的时候,一个@Component注解就声明了一个类为Spring Bean呢?
为什么你通过一个@Value注解就拂去到配置文件中的表呢?
因为你可以基于反射分析类,然后获取到类/属性/方法的参数上的注解,你获取到注解以后,就可以作进一步的处理。
反射使用步骤:(获取class对象,调用对象方法)
获取class方法(最常用):1.class.forName(”全类名“):将字节码文件加载进内存,返回Class对象 ---->多用于配置文件
2.类名.class:通过类名的属性class获取 -->多用于参数的传递
3.对象.getClass():getClass()方法在Object类中定义-->多用于对象的获取字节码的方式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通