码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java学习----泛型


    今日学习内容总结如下:

    不引入泛型的问题:

    当将一个对象放入集合中,集合不会记住此对象的类型,当再次从集合中取出此对象时,改对象的编译类型变成了Object类型,但其运行时类型任然为其本身类型。

    因此取出集合元素时需要人为的强制类型转化到具体的目标类型,但是很容易出现
    ClassCastException异常

    那么有没有什么办法可以使集合能够记住集合内元素各类型,且能够达到只要编译时不出现问题,运行时就不会出现java.lang.ClassCastException异常呢?

    答案就是使用泛型,可以将运行时的类型检查搬到编译期实现

    什么是泛型

    泛型是jdk5引入的类型机制,就是将类型参数化。泛型作为一种安全机制而产生

    泛型机制将类型转换时的类型检查从运行时提前到了编译时,使用泛型编写的代码比杂乱的使用object并在需要时再强制类型转换的机制具有更好的可读性和安全性。

    泛型在本质上是指类型参数化。所谓类型参数化,是指用来声明数据的类型本身,也是可以改变的,它由实际参数来决定。在一般情况下,实际参数决定了形式参数的值。而类型参数化,则是实际参数的类型决定了形式参数的类型。

    在声明List阶段E是什么类型不确定,这里的E仅仅充当占位符的作用,在具体调用时类型才能确定,而E的所有位置将被指定的类型所替代

    使用泛型的定义

    public interface List extends Collection
    这里的<>中的内容就是类型参数,一般建议使用T或者E之类的全大写
    {
          

  • 相关阅读:
    Andrej Karpathy | 详解神经网络和反向传播(基于 micrograd)
    Java + Selenium + Appium自动化测试
    IB商管IA占多少?写什么?
    31、商户查询缓存(缓存穿透)
    day08-Windows备份与灾难恢复
    分布式事务理论基础之初识Seata
    JVM学习笔记(四)类加载与字节码技术
    【Python百宝箱】视觉算法秀:Python图像处理舞台上的巅峰对决
    PTC:以用户为中心,消费电子制造如何解决产品多样性与复杂性?
    驱动开发:摘除InlineHook内核钩子
  • 原文地址:https://blog.csdn.net/hanxuya/article/details/126549415
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号