当前位置: 首页 > news >正文

Java全栈学习笔记29

# 泛型反射

ORM:Hibernate  MyBatis/MyBatis-plus

MVC:Struts SpringMVC Spring-webflux

项目架构:Spring  SpringBoot..

提升开发效率

## 泛型

参数化类型,使用这种方式,让类中的数据类型动态化

泛型不可以是基本数据类型。

减少类型之间相互转换而引起的异常问题

参数类型使用extends关键字,形成有界类型

泛型类

  public class 类名<通配符> {

  ​ private 通配符 变量名

  }

泛型方法

  //泛型的实际类型是依靠传入的参数类型

  public <S> void eat(S eat){

   

  }

  public <S> void eat(){

    S s = new Object();

  }

  public <S> S eat(){

    S s = new Object();

    return s;

  }

  public <S> List<S> eat(){

    S s = new Object();

    List<S> list = new ArrayList<>();

    list.add(s);

    return list;

  }

## 反射

在程序运用过程中,动态的操作类以及对象的属性或者方法。

必要条件:获取类的类型  Class,字节文件对象

  类名.class属性  

  类的对象  getClass()方法获取类型

  Class.forName("类的全限定名称(包名+类名)"),主动抛出 ClassNotFoundException 异常。

方法

  getDeclaredConstructor()/getConstructor([参数类型顺序的参数列表]) 获取类的构造方法

  getConstructors() 获取所有的构造方法

  getDeclaredField/getField(name) 根据属性名获取属性对象

  getDeclaredFields()/getFields()

    Field

    方法中不包含Declared的获取公共属性或者方法或者构造方法。

    field.setAccessible 通过为Field获取方法Constructor对象设置该方式的值为true,操作私有的构造方法或者属性

    private Student(){

    }

    Constructor<?> con = clazz.getDeclaredConstructor();

    con.setAccessible(**true**);

    Object obj = con.newInstance();

    System.**out**.println(obj);

  getDeclaredMethod/getMethod()

    Method 对象

      invoke() 执行方法

  getInterfaces() 当前类实现的接口

Constructor 构造方法对象

  getName

  getParameterCount() 构造方法参数的个数

  getParameters() 获取所有的参数

    Parameter 对象

  newInstance([参数]) 初始化对象,传入的参数和构造方法的获取时使用无参和有参相关


文章转载自:

http://K5cWIEhR.rnqnp.cn
http://E75estOW.rnqnp.cn
http://C1ICge4F.rnqnp.cn
http://Bs4pkNho.rnqnp.cn
http://kdulhhxJ.rnqnp.cn
http://4Z1cjp6p.rnqnp.cn
http://qGbrliB5.rnqnp.cn
http://cAmlrUNV.rnqnp.cn
http://UY9qnJYD.rnqnp.cn
http://BXfT6DQ1.rnqnp.cn
http://X4bntxAl.rnqnp.cn
http://mD87cSsV.rnqnp.cn
http://Rd2nkbCC.rnqnp.cn
http://OkoSRssY.rnqnp.cn
http://ptdOEGMg.rnqnp.cn
http://7VZfinlS.rnqnp.cn
http://t8fRyZvg.rnqnp.cn
http://47sgHWKd.rnqnp.cn
http://14jKfWPL.rnqnp.cn
http://3hK6Avwi.rnqnp.cn
http://vVa9vtYK.rnqnp.cn
http://m3pPb8bb.rnqnp.cn
http://rokBVJye.rnqnp.cn
http://iC5Ma79E.rnqnp.cn
http://CclrsvCU.rnqnp.cn
http://7PVl8GAi.rnqnp.cn
http://ritkpYvO.rnqnp.cn
http://lQPt1l32.rnqnp.cn
http://8npKjHPL.rnqnp.cn
http://5sHjXMLd.rnqnp.cn
http://www.dtcms.com/a/365403.html

相关文章:

  • 关于牙科、挂号、医生类小程序或管理系统项目 项目包含微信小程序和pc端两部分
  • 从一次Crash分析Chromium/360浏览器的悬空指针检测机制:raw_ref与BackupRefPtr揭秘
  • 如何修复“您的连接不是私密连接”警告?
  • sentinel实现控制台与nacos数据双向绑定
  • Android音频学习(十六)——CreateTrack
  • 深度学习——CNN实例手写数字
  • 涉私数据安全与可控匿名化利用机制研究(下)
  • Triton Linalg - WrapFuncBodyWithSingleBlockPass
  • 软件设计师备考-(十) 多媒体基础
  • 两个子进程之间使用命名pipe
  • 如何构建企业级RAG知识库?实战方法、关键细节与平台选型
  • 并发编程——14 线程池参数动态化
  • PyTorch 损失函数与优化器全面指南:从理论到实践
  • 归一化的定义与作用
  • IO进程线程;进程,发送信号;进程,消息队列通信;0903
  • 消息传递模型实现
  • 阿里开源首个图像生成基础模型——Qwen-Image本地部署教程,中文渲染能力刷新SOTA
  • AI 生成内容(AIGC)版权归属引争议:创作者、平台、AI 公司,谁该拥有 “作品权”?
  • 弧焊工业机器人保护气节约的关键
  • Windows/Linux下vscode+vcpkg管理C++包链接方法
  • 相关性分析与常用相关系数
  • React学习教程,从入门到精通, React 组件语法知识点(9)
  • 记一次VMware虚拟机(BC-linux)网络配置过程
  • LVGL9.3 vscode 模拟环境搭建
  • 【医疗行业案例】基于 React 的预约系统:DHTMLX 助力高效排班与预约管理
  • kafka Partition(分区)详解
  • 线性代数基础 | 基底 / 矩阵 / 行列式 / 秩 / 线性方程组
  • UniApp 混合开发:Plus API 从基础到7大核心场景实战的完整指南
  • 老年综合实训室建设方案:产教融合新实践助力养老人才供需精准对接
  • pytorch初级