反射及泛型

简介: 反射是 Java 提供的一套 API,可在运行期间根据类名加载类、获取类的信息、创建对象及统一调用方法和属性。它广泛应用于 Spring、JUnit、MyBatis 等框架,但反射调用效率较低。泛型则用于实现类型参数化,提升代码通用性和健壮性。

反射

什么是反射

  • 反射是 java 提供的一套 API,通过这套 API 能够在运行期间
  • 根据类名加载类
  • 获取类的各种信息,如类有哪些属性、哪些方法、实现了哪些接口 ...
  • 类型参数化,根据类型创建对象
  • 方法、属性参数化,以统一的方式来使用方法和属性
  • 反射广泛应用于各种框架实现,例如
  • Spring 中的 bean 对象创建、依赖注入
  • JUnit 单元测试方法的执行
  • MyBatis 映射查询结果到 java 对象
  • ...
  • 反射在带来巨大灵活性的同时也不是没有缺点,那就是反射调用效率会受一定影响

泛型

什么是 Java 泛型

  • 泛型的主要目的是实现类型参数化,java 在定义类、定义接口、定义方法时都支持泛型
  • 泛型的好处有
  • 提供编译时类型检查,避免运行时类型转换错误,提高代码健壮性
  • 设计更通用的类型,提高代码通用性

【例如】想设计 List 集合,里面只放一种类型的元素,如果不用泛型,怎么办呢?你必须写很多实现类

  • Impl1 实现类中,只放 String
  • Impl2 实现类中,只放 Integer
  • ...
  • 要支持新的元素类型,实现类型也得不断增加,解决方法需要把元素类型作为参数,允许它可变化:List<T>,其中 T 就是泛型参数,它将来即可以是 String,也可以是 Integer ...
相关文章
|
4月前
|
Java 关系型数据库 数据库
深度剖析【Spring】事务:万字详解,彻底掌握传播机制与事务原理
在Java开发中,Spring框架通过事务管理机制,帮我们轻松实现了这种“承诺”。它不仅封装了底层复杂的事务控制逻辑(比如手动开启、提交、回滚事务),还提供了灵活的配置方式,让开发者能专注于业务逻辑,而不用纠结于事务细节。
|
4月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
1016 10
|
4月前
|
运维 Kubernetes 数据可视化
helm-diff:显示Helm升级变更的diff插件
helm-diff:Helm插件,解决Kubernetes应用升级前难以知晓具体资源变更的痛点。通过生成当前部署版本与升级计划的差异对比,将抽象升级操作转化为可视化资源变更,支持升级前预览,让每一次变更清晰可见,提升应用管理可控性。
207 3
|
4月前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
720 3
|
4月前
|
人工智能 算法 前端开发
超越Prompt Engineering:揭秘高并发AI系统的上下文工程实践
本文系统解析AI工程范式从Prompt Engineering到Context Engineering的演进路径,深入探讨RAG、向量数据库、上下文压缩等关键技术,并结合LangGraph与智能体系统架构,助力开发者构建高可靠AI应用。
682 2
|
4月前
|
存储 机器学习/深度学习 缓存
阿里云九代云服务器怎么样?计算型c9i、通用型g9i、内存型r9i实例介绍
阿里云第9代云服务器主要实例规格包括计算型c9i、通用型g9i、内存型r9i,本文将为大家介绍阿里云九代云服务器中的计算型c9i、通用型g9i、内存型r9i实例的主要性能特点,并分享最新的活动价格信息,以供参考。
535 1
|
4月前
|
安全 前端开发 Java
Java包管理与访问控制权限详解
本文深入讲解Java包管理和访问控制,涵盖包的创建与使用、访问权限的四个层级,并结合实战案例分析如何设计合理的包结构和访问权限,帮助开发者提升代码的安全性与可维护性。
|
4月前
|
缓存 监控 测试技术
《支付回调状态异常的溯源与架构级修复》
本文复盘了SaaS收银系统微服务架构下,支付回调模块“用户支付成功却显示未付款”异常的排查与解决过程。该系统上线后,仅在每日交易峰值后1小时集中出现异常,常规排查无果。团队通过分布式链路追踪发现,“查询订单详情”接口因多表跨规则分表查询,在峰值后资源竞争下耗时激增,且回调模块无重试机制,导致订单状态更新中断。解决方案从三方面入手:优化接口查询逻辑与分表规则、增强回调模块容错能力、完善全链路监控。上线后异常消失,接口耗时大幅降低,数据库负载下降40%,并总结出微服务跨服务交互的避坑准则,为后端开发者提供参考。
156 4
|
4月前
|
存储 SQL 缓存
Java字符串处理:String、StringBuilder与StringBuffer
本文深入解析Java中String、StringBuilder和StringBuffer的核心区别与使用场景。涵盖字符串不可变性、常量池、intern方法、可变字符串构建器的扩容机制及线程安全实现。通过性能测试对比三者差异,并提供最佳实践与高频面试问题解析,助你掌握Java字符串处理精髓。
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
30174 0