包装类和泛型的意思

2023-11-07

目录

包装类

泛型(Generic)

若泛型中存在多个类型参数,成员变量的类型就不一定一致


包装类

定义泛型对象时,只能使用类,基本类型不能保存到泛型中,必须使用包装类。

Object类可以接收所有引用数据类型,为了让Object可以接收所有的类,引入包装类,把基本的类型都封装。

 

 

 

package pakage_class;

public class IntegerTest {
    int val=10;
    //int -->Integer
    Integer i1=new Integer(val);
    Object object=i1;
    //如要进行数学运算,就需要把包装类还原为基本类型
    int ret= i1.intValue();

    
public static void main(String[] args) {
    //自动装箱
    Integer i2=10;
    //自动拆箱
    i2+=20;
    System.out.println(i2);
    Integer i1=130;
    Integer i2=130;
    System.out.println(i1==i2);
    System.out.println(i1.equals(i2));
    i1=120;     //这个数值头一次输出的化,创建一个Integer对象保存到常量池中
    i2=120;     // 此时120这个值在常量池中已经有了直接复用
    System.out.println(i1==i2);
}
}

泛型(Generic)

引入泛型可以检查编译错误类型,还可以省略掉取值的强转步骤。

 

public class MyPoint <T>{
    //此时x的类型不定,在产生对象时确定类型 ;
    private T x;
    private T y;
// x 和y 这两个成员变量的类型不定,在产生MyPoint类的对象的
    //时候明确x和y的类型
    public T getX() {
        return x;
    }
    public void setX(T x) {
        this.x = x;
    }

    public T getY() {
        return y;
    }

    public void setY(T y) {
        this.y = y;
    }

    public static void main(String[] args) {
        //泛型的T替换成String,当产生MyPoint对象时,此时将T这个类型参数转换为明确的类型String;
        MyPoint<String> point=new MyPoint<>();
        point.setX("东经22度"); //类型不一样的话,编译就报错了
        point.setY("北纬30度");
        String x=point.getX();
        String y=point.getY();
        System.out.println("x="+x+",y="+y);
    }
}

有了泛型就可以改造数组和链表,保存任意类型。

若泛型中存在多个类型参数,成员变量的类型就不一定一致

使用不同的大写字母指代不同类型        ,产生对象时,T和E的类型可以相同也可以不同。

public class MyPointNew <T,E>{
    private  T x;

    public T getX() {
        return x;
    }

    public void setX(T x) {
        this.x = x;
    }

    public E getY() {
        return y;
    }

    public void setY(E y) {
        this.y = y;
    }

    private  E y;

    public static void main(String[] args) {
        MyPointNew<String,Integer> pointNew=new MyPointNew<>();
        pointNew.setX("王八");
        pointNew.setY(455);

        MyPointNew<String,String> pointNew1=new MyPointNew<>();
        pointNew1.setY("蛋蛋");
        pointNew1.setX("包子");
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

包装类和泛型的意思 的相关文章

随机推荐

  • matlab function的使用

    首先创建一个m文件 Matlab函数定义格式 用关键字function定义函数 function 输出变量 函数名称 输入变量 注释 函数体 简单的函数如下 function a b c test d e f a d e b e f c f
  • 下载工具IDM之——无法下载此受保护的数据其他解决方案

    一 现象描述 在使用IDM进行直播流数据下载时 可能会显示如下信息 二 解决办法 2 1 使用ffmpeg 下载配置ffmpeg后 使用下面的指令合成视频 ffmpeg i http ivi bupt edu cn hls cctv1hd
  • ABAP DOI展示EXCEL或WORD

    正文部分 DOI技术算是比较老的技术了 用来直接调用office展示结果 可以是EXCEL也可以是WORD data begin of s fal include structure faglflext data end of s fal
  • 统计假设检验

    1 假设检验基本思想 假设检验是由K Pearson于20世纪提出的 之后由费希尔 Fisher 进行了细化 并最终由奈曼和E Pearson提出了较完整的假设检验理论 假设检验的基本思想是 小概率事件 原理 其统计推断方法是带有某种概率性
  • 解决SpringMVC重定向参数无法携带问题

    解决SpringMVC重定向参数无法携带问题 场景 重定向时请求参数会丢失 我们往往需要重新携带请求参数 我们可以进 动参数拼接如下 return redirect handle01 name name 但是上述拼接参数的 法属于get请求
  • 关于使用流进行排序

    关乎流中的排序 使用collections的sort函数进行排序 不改变属性值 只会改变位置 public void setResultListByTime List
  • java匹配注释的正则表达式

    参考http iregex org blog uncomment program with regex html 通用注释有两种 1 2 通常情况下 行级注释可以这样匹配 n 块级别这样 或者还可以这样 s 不过在特殊情况中 行级别会跟协议
  • [附源码]计算机毕业设计学生宿舍维修管理系统Springboot程序

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • ‘“node --max-old-space-size=4096“‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    问题描述 使用npm run dev的时候报如下错误 node max old space size 4096 不是内部或外部命令 也不是可运行的程序或批处理文件 FATAL ERROR Ineffective mark compacts
  • CMD打开闪退问题修复

    CMD termain 打开闪退问题修复 Date 2022 06 01 01 问题说明 今天 VSC Remote SSH 突然无法工作 不确定是否因为我卸载 MiniConda 导致 然后开始折腾 VSC 问题如下 Could not
  • 将微信小程序页面转为图片

    最近做项目遇到一个需求 那就是要将某个页面转为图片然后传给后端 我仔细找了一圈 发现官方那个Api也就是wx canvasToTempFilePath生成的图片很有可能为空 太坑了 于是我放弃用它了 选择了用wxml2canvas 安装wx
  • MySQL索引(index)专题

    1 MySQL索引简介 索引 Index 是帮助MySQL高效获取数据的数据结构 它的存在形式是文件 索引能够帮助我们快速定位数据 它可以让mysql高效运行 大大提高mysql的查询 包括排序 分组 效率 Mysql目前主要有以下几种索引
  • 程序员面试题精选100题(04)-二元树中和为某一值的所有路径

    程序员面试题精选100题 04 二元树中和为某一值的所有路径 题目 输入一个整数和一棵二元树 从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径 打印出和与输入整数相等的所有路径 例如输入整数22和如下二元树 10 5 12
  • 集合的父子类关系

    一 Collection的父子类关系 1 Iterable java集合的顶级接口之一 实现此接口的类可以使用新的for循环2 Iterator 接口 遍历器 ListIterator 方法 hasNext next remove 3 Co
  • openstack对接gluster流程

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 在已经部署好的gluster集群里创建相应的卷 可参考https my oschina net u 857184 blog 1506552 mkdir p data bri
  • 还分不清 Cookie、Session、Token、JWT?

    什么是认证 Authentication 通俗地讲就是验证当前用户的身份 证明 你是你自己 比如 你每天上下班打卡 都需要通过指纹打卡 当你的指纹和系统里录入的指纹相匹配时 就打卡成功 互联网中的认证 用户名密码登录 邮箱发送登录链接 手机
  • vscode查询项目代码行数

    vscode版本 4 13 1 1 打开vscode搜索 2 在输入框中输入 b b 并选择输入框内第三个图标使用正则表达式 3 结果出来了 最近知道了另外一个方法 使用命令行进行统计 例如只统计src内代码行数 直接使用git bash执
  • MySQL:explain结果中Extra:Impossible WHERE noticed after reading const tables

    MySQL explain结果中Extra Impossible WHERE noticed after reading const tables 前情提要 出现的情况 原因 前情提要 今天上午有同事突然找我 向我反馈说在对MySQL中的语
  • Qt自动生成ui_xxx.h和moc_xxx.cpp

    在 ui的常规中 命令行 QT DIR bin uic exe Drag2DWidget ui o ui Drag2DWidget h 说明UIC Drag2DWidget ui 输出ui Drag2DWidget h Outputs 附加
  • 包装类和泛型的意思

    目录 包装类 泛型 Generic 若泛型中存在多个类型参数 成员变量的类型就不一定一致 包装类 定义泛型对象时 只能使用类 基本类型不能保存到泛型中 必须使用包装类 Object类可以接收所有引用数据类型 为了让Object可以接收所有的