初始泛型【超级详细哦~】

news2024/11/15 14:09:31

初始泛型【超级详细哦~】

  • 1、包装类
    • 1.1 基本数据类型和对应的包装类
    • 1.2 装箱和拆箱
    • 1.3 自动装箱和拆箱
  • 2、泛型
    • 2.1 什么是泛型
    • 2.2 泛型的语法
    • 2.3泛型的使用
    • 2.4 泛型的上界
      • 2.4.1 语法
      • 2.4.2 示例

1、包装类

1.1 基本数据类型和对应的包装类

在这里插入图片描述

1.2 装箱和拆箱

        int i=10;
        //装箱操作,新建一个Integer类型对象,手动将i的值放入对象的某个属性中
        Integer ii=Integer.valueOf(i);

        //拆箱操作,将Integer对象中的值取出,放到一个基础类型中
        int j=ii.intValue();

1.3 自动装箱和拆箱

       //自动装箱
        Integer i1=10;
        //自动拆箱
        int i2=i1;

2、泛型

2.1 什么是泛型

泛型:就是适用于许多许多类型。
使用泛型可以通过自动装箱储存Integer等对象,
不仅能储存基本类型,还能储存复杂对象,这样为程序提供了更大的通用性。

使用泛型较数组的好处

  • int[ ]… : 之前我们就学过数组,只能创建静态数组,只提供基本的访问和遍历操作。你需要手动输入更多复杂的操作,如增删查改。
  • List< Integer >… :使用泛型时,不仅可以创建动态数组,装箱后还提供了很多复杂的操作,如:List的增删查改方法。

2.2 泛型的语法

class 泛型类名称 <类型形参列表>{
       //这里可以使用类型参数
}

下面举一个简单的例子:

class demo<T>{
    public Object[] arr=new Object[10];
    //所有类的父类是Object
}

2.3泛型的使用

在这里插入图片描述

如果上述案例我不想使用(T)强制性转化应该如何书写代码?

在这里插入图片描述

在这里插入图片描述

2.4 泛型的上界

在定义泛型类时,有时需要对传入的类型变量做一定的约束,可以通过类型边界来约束。

2.4.1 语法

class 泛型类名称<类型形参 extend 类型边界>{
}

2.4.2 示例

在这里插入图片描述
关于泛型的内容已经叙述完毕,该文章使用过的代码我放下面了,有需要的可以选择查看~

class demo<T>{
    public Object[] arr=new Object[10];

    public T getArr(int pos) {
        return (T)arr[pos];
    }

    public void setArr(int pos,T val) {
        this.arr[pos] = val;
    }
}
class demo0<E extends Number>{
    public Object[] arr=new Object[10];

    public E getArr(int pos) {
        return (E)arr[pos];
    }

    public void setArr(int pos,E val) {
        this.arr[pos] = val;
    }
}
public class Main {
    public static<E> void main(String[] args) {
        demo0<Integer> arr=new demo0<>();
        //demo0<String> arr1=new demo0<String>();
    }
    public static<T> void main5(String[] args) {
        demo<String> arr=new demo<>();
        arr.setArr(0,"哈哈哈哈");
        System.out.println(arr.getArr(0));
    }

    public static <T> void main4(String[] args) {
        demo<Integer> arr=new demo<>();
        arr.setArr(0, 100 );
        System.out.println(arr.getArr(0));
    }
    public static void main3(String[] args) {
        int[] arr1={1,2,3,4,5,6};
        char[] arr2={'a','b','c','d','e'};
    }
    public static void main2(String[] args) {
        //自动装箱
        Integer i1=10;
        //自动拆箱
        int i2=i1;
        System.out.println(i1);
        System.out.println(i2);
    }
    public static void main1(String[] args) {
        int i=10;
        //装箱操作,新建一个Integer类型对象,手动将i的值放入对象的某个属性中
        Integer ii=Integer.valueOf(i);

        //拆箱操作,将Integer对象中的值取出,放到一个基础类型中
        int j=ii.intValue();

        System.out.println(i);
        System.out.println(ii);
        System.out.println(j);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2151378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聊聊Thread Local Storage

聊聊ThreadLocal 为什么需要Thread Local StorageThread Local Storage的实现PThread库实现操作系统实现GCC __thread关键字实现C11 thread_local实现JAVA ThreadLocal实现 Thread Local Storage 线程局部存储&#xff0c;简称TLS。 为什么需要Thread Local Storage 变量分为全…

元学习的简单示例

代码功能 模型结构&#xff1a;SimpleModel是一个简单的两层全连接神经网络。 元学习过程&#xff1a;在maml_train函数中&#xff0c;每个任务由支持集和查询集组成。模型先在支持集上进行训练&#xff0c;然后在查询集上进行评估&#xff0c;更新元模型参数。 任务生成&…

STM32G431RBT6(蓝桥杯)串口(发送)

一、基础配置 (1) PA9和PA10就是串口对应在单片机上的端口 注意&#xff1a;一定要先选择PA9的TX和PA10的RX&#xff0c;再去打开异步的模式 (2) 二、查看单片机的端口连接至电脑的哪里 &#xff08;1&#xff09;此电脑->右击属性 &#xff08;2&#xff09;找到端…

AI视觉算法盒是什么?如何智能化升级网络摄像机,守护全方位安全

在智能化浪潮席卷全球的今天&#xff0c;以其创新技术引领行业变革&#xff0c;推出的集高效、智能、灵活于一体的AI视觉算法盒。这款革命性的产品&#xff0c;旨在通过智能化升级传统网络摄像机&#xff0c;为各行各业提供前所未有的安全监控与智能分析能力&#xff0c;让安全…

SpringCloud构建工程

一、新建数据库和表&#xff0c;并填写测试数据 二、创建父级工程 1、创建maven工程 2、工程名字OfficeAutomation 3、pom.xml文件中添加依赖 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.encodin…

领域驱动DDD三种架构-分层架构、洋葱架构、六边形架构

博主介绍&#xff1a; 大家好&#xff0c;我是Yuperman&#xff0c;互联网宇宙厂经验&#xff0c;17年医疗健康行业的码拉松奔跑者&#xff0c;曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 技术范围&#xff1a; 目前专注java体系&#xff0c;以及golang、.Net、…

第二十节:学习Redis缓存数据库实现增删改查(自学Spring boot 3.x的第五天)

这节记录下如何使用redis缓存数据库。 第一步&#xff1a; 先在服务器端安装redis&#xff0c; 下载地址&#xff1a;Releases tporadowski/redis GitHub。 第二步&#xff1a; 安装redis客户端可视化管理软件redisDesktopmanager Redis Desktop Manager - Download 第…

GAMES101(13节Ray Tracing)

Ray Tracing 基本原理&#xff1a; 我们知道为什么会看到物体的颜色&#xff0c;因为光线照射物体&#xff0c;未被吸收的光线反射到人眼&#xff0c;因此&#xff0c;我们看到的颜色&#xff0c;就是光的一部分&#xff0c;光线追踪就是模拟这个过程 光线假设&#xff1a; …

DHCP协议原理(网络协议)

DHCP简介 定义 DHCP&#xff08;动态主机配置协议&#xff09;是一种网络管理协议&#xff0c;能够自动为局域网中的每台计算机分配IP地址及其他网络配置参数&#xff0c;包括子网掩码、默认网关和DNS服务器等。这一机制极大简化了网络管理&#xff0c;尤其在大型局域网中&am…

聊聊AUTOSAR:基于Vector MICROSAR的TC8测试开发方案

技术背景 车载以太网技术作为汽车智能化和网联化的重要组成部分&#xff0c;正逐步成为现代汽车网络架构的核心&#xff0c;已广泛应用于汽车诊断&#xff08;如OBD&#xff09;、ECU软件更新、智能座舱系统、高清摄像头环视泊车系统等多个领域。 在这个过程中&#xff0c;ET…

CSS 的元素显示模式简单学习

目录 1. 元素显示模式 1.1 概述 1.2 块元素 1.3 行元素 1.4 行内块元素 1.5 元素显示模式总结 2. 元素显示模式转换 3. 单行文字垂直居中 4. 案例演示 1. 元素显示模式 1.1 概述 1.2 块元素 1.3 行元素 1.4 行内块元素 1.5 元素显示模式总结 2. 元素显示模式转换 3. 单…

通过markdown表格批量生成格式化的word教学单元设计表格

素材&#xff1a; 模板&#xff1a; 代码&#xff1a; import pandas as pd from python_docx_replace import docx_replace,docx_get_keys from docx import Document from docxcompose.composer import Composerdef parse_markdown_tables(file_path):with open(file_path,…

DOCKER 数据库管理软件自己开发--———未来之窗行业应用跨平台架构

- 数据异地容灾服务--未来之窗智慧数据服务 DATA REMOTE DISASTER RECOVERY SERVICE -CyberWin Future Docker-数据查看 CyberWin DATA Viewer 1.docker 样式 mysqli://root:密码172.17.0.2:端口/数据库 阿雪技术观 拥抱开源与共享&#xff0c;见证科技进步奇迹&#xff0c;…

AMD小胜!锐龙7 9700X VS. i7- 14700K网游对比

一、前言&#xff1a;两款高端处理器的网游对比测试 半个月前&#xff0c;我们做了锐龙5 9600X与i5-14600K的网游帧率测试&#xff0c;结果有点意外&#xff0c;几款游戏平均下来&#xff0c;锐龙5 9600X比i5-14600K竟然强了19%之多。 今天我们将会对锐龙7 9700X和i7-14700K进行…

【高阶数据结构】二叉搜索树的插入、删除和查找(精美图解+完整代码)

&#x1f921;博客主页&#xff1a;醉竺 &#x1f970;本文专栏&#xff1a;《高阶数据结构》 &#x1f63b;欢迎关注&#xff1a;感谢大家的点赞评论关注&#xff0c;祝您学有所成&#xff01; ✨✨&#x1f49c;&#x1f49b;想要学习更多《高阶数据结构》点击专栏链接查看&a…

【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(上)

文章目录 前言一、ArkTS基本介绍1、 ArkTS组成2、组件参数和属性2.1、区分参数和属性的含义2.2、父子组件嵌套 二、装饰器语法1.State2.Prop3.Link4.Watch5.Provide和Consume6.Observed和ObjectLink代码示例&#xff1a;示例1&#xff1a;&#xff08;不使用Observed和ObjectLi…

Windows11家庭版修改用户密码策略为永不过期。

今天有个朋友找到我说&#xff0c;他的电脑密码老是过期然后需要修改&#xff0c;让我帮忙改一下密码策略&#xff0c;改为永不过期。 下面就来操作一下吧。 这里有个小小的坑&#xff0c;就是win11的家庭版是没有 gpedit.msc的&#xff0c;也就不能直接cmd打开本地策略便器&…

【WebGis开发 - Cesium】获取视野中心点,并设置顶视图视角

引言 项目开发过程中遇到一个需求&#xff0c;通过一个按钮切换视角为顶视图。 分析了一下这个模糊的需求&#xff0c;首先没有给出切换顶视图后俯视的区域范围&#xff0c;其次没有给出俯视点的高度。 这里可以粗略的认为当前的侧俯视的角度下观看的范围即为俯视的区域范围&am…

视频美颜SDK核心功能解析:打造高效直播美颜工具方案详解

随着直播行业的迅猛发展&#xff0c;用户对于直播画质和个人形象的要求越来越高。视频美颜SDK作为一项关键技术&#xff0c;已经成为各大直播平台和短视频应用的重要组成部分。通过实时美颜技术&#xff0c;用户能够在直播过程中呈现出更加理想的形象&#xff0c;从而提升直播体…

实验一:Windows下的IIS服务器配置和管理

第一次实验隐藏关很多&#xff0c;稍不留神服务器就寄了。 实验一完成后会有联网问题&#xff0c;问题解决详见番外篇。 实验内容 任务一&#xff1a; 1、建立一个基于主机名www.study.com的站点&#xff0c;站点的主目录为C:\inetpub\wwwroot&#xff0c;给站点建立一个虚拟…