反射及泛型

简介: 反射是 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不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
913 10
|
4月前
|
运维 Kubernetes 数据可视化
helm-diff:显示Helm升级变更的diff插件
helm-diff:Helm插件,解决Kubernetes应用升级前难以知晓具体资源变更的痛点。通过生成当前部署版本与升级计划的差异对比,将抽象升级操作转化为可视化资源变更,支持升级前预览,让每一次变更清晰可见,提升应用管理可控性。
157 3
|
4月前
|
安全 Java 数据库连接
2025 年最新 Java 学习路线图含实操指南助你高效入门 Java 编程掌握核心技能
2025年最新Java学习路线图,涵盖基础环境搭建、核心特性(如密封类、虚拟线程)、模块化开发、响应式编程、主流框架(Spring Boot 3、Spring Security 6)、数据库操作(JPA + Hibernate 6)及微服务实战,助你掌握企业级开发技能。
614 3
|
4月前
|
人工智能 算法 前端开发
超越Prompt Engineering:揭秘高并发AI系统的上下文工程实践
本文系统解析AI工程范式从Prompt Engineering到Context Engineering的演进路径,深入探讨RAG、向量数据库、上下文压缩等关键技术,并结合LangGraph与智能体系统架构,助力开发者构建高可靠AI应用。
577 2
|
4月前
|
存储 Java API
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
284 92
|
4月前
|
安全 前端开发 Java
Java包管理与访问控制权限详解
本文深入讲解Java包管理和访问控制,涵盖包的创建与使用、访问权限的四个层级,并结合实战案例分析如何设计合理的包结构和访问权限,帮助开发者提升代码的安全性与可维护性。
|
4月前
|
存储 机器学习/深度学习 缓存
阿里云九代云服务器怎么样?计算型c9i、通用型g9i、内存型r9i实例介绍
阿里云第9代云服务器主要实例规格包括计算型c9i、通用型g9i、内存型r9i,本文将为大家介绍阿里云九代云服务器中的计算型c9i、通用型g9i、内存型r9i实例的主要性能特点,并分享最新的活动价格信息,以供参考。
482 1
|
4月前
|
存储 SQL 缓存
Java字符串处理:String、StringBuilder与StringBuffer
本文深入解析Java中String、StringBuilder和StringBuffer的核心区别与使用场景。涵盖字符串不可变性、常量池、intern方法、可变字符串构建器的扩容机制及线程安全实现。通过性能测试对比三者差异,并提供最佳实践与高频面试问题解析,助你掌握Java字符串处理精髓。
|
DataWorks 数据挖掘 Serverless
阿里云EMR Serverless StarRocks 内容合集
阿里云 EMR StarRocks 提供存算分离架构,支持实时湖仓分析,适用于多种 OLAP 场景。结合 Paimon 与 Flink,助力企业高效处理海量数据,广泛应用于游戏、教育、生活服务等领域,显著提升数据分析效率与业务响应速度。
277 1