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

javaSE.走进泛型. 泛型类

为了统计学生成绩,要求设计一个Score对象,包括课程名称、课程号、课程成绩,但是成绩分为两种,一种是以优秀、良好、合格来作为结果,还有一种就是60.0,75.5,92.5这样的数字分数,可能高等数学这门课是以数字成绩进行结算,而计算机网络实验这门课是以等级进行结算,这两种分数类型都有可能出现,那么现在改如何去设计这样的一个Score类呢?

现在问题就是,成绩可能是String类型,也可能是Integer类型,如何才能很好的去存可能出现的两种类型呢?

Object是所有类的父类,既可以存Integer也可以存String

但是Object类型在编译阶段并不具有良好的类型判断能力👇

无法明确具体是哪个类型的,无法强制转换为原本类型,需要提前进行类型判断

为了解决上述问题,泛型👇👇👇

自动替换String类型👇 

 静态方法中不能使用泛型,因为是具体使用对象时才会明确具体类型👇

我们在方法中使用待确定类型变量时,此时并不确定具体是什么类型,那么默认这个变量是要给Object 类型的变量,因为无论具体类型是什么,一定是Object类的子类。可以强转但没多大必要。

因为泛型本身就是对某些待定类型简单处理,如果都明确了要使用什么类型了,那大可不必使用泛型。

还有不能通过这个不确定的类型变量就去创建对象和对应的数组👇

具体类型的不同的泛型类变量,不能使用不同的变量进行接收👇

如果要让某个变量支持引用确定了任意类型的泛型,那么可以使用通配符 ‘ ?’  👇

但是,如果使用通配符 ‘ ?’,由于类型不确定,所以说具体类型同样会变成Object 👆

泛型变量可以定义多个 👇

public class Test<A,B,C> { }

泛型仅支持引用类型 Integer等,不支持基本数据类型 例如 int。

数组本身也是引用类型,是可以使用的。

相关文章:

  • wpf ScaleTransform
  • DeepSeek大模型微调技术PEFT与LoRA详解
  • 大模型落地的关键:如何用 RAG 打造更智能的 AI 搜索——阿里云 AI 搜索开放平台
  • 高等数学A1 期末救济(导数)
  • Vue3 SSR异构渲染引擎:混合现实与时空折叠
  • macOS取证分析——Safari浏览器、Apple Mail数据和Recents数据库
  • 杰弗里·辛顿:深度学习教父
  • Ubuntu服务器性能调优指南:从基础工具到系统稳定性提升
  • 算法升级战报:亚马逊受众定向工具实测点击成本降37%
  • vivado 时钟IP核(MMCM PLL)
  • MAC-批量任务并行处理​​实现
  • display的一些学习记录
  • 无人机遥感与传统卫星遥感:谁更适合你的需求?
  • mysql备份存储过程、函数和事件
  • 无人机故障冗余设计技术要点与难点!
  • RISC-V架构新生态:鸿道Intewell操作系统×全志D1芯片
  • 【Mac-ML-DL】深度学习使用MPS出现内存泄露(leaked semaphore)以及张量转换错误
  • 算法——希尔排序
  • 【软考】论devops在企业信息系统开发中的应用
  • Vue基础(4)_事件处理
  • 展示用网站模板免费下载/培训心得体会感悟
  • 世界球队最新排名/优化大师官方正版下载
  • asp.net mvc 做网站/seo排名怎么做
  • 长沙网站建设公司哪家好/河南平价的seo整站优化定制
  • 西安网站制作开发公司哪家好/百度百科入口
  • 做网站都需要学什么/小红书推广引流软件