栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java泛型详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java泛型详解

拿一个顺序表举例子

这个:代表当前类是一个泛型类

new T[10]:这是不被允许的,不能new泛型类型的数组,T[] t = new T[];是不允许的 泛型的意义:
  • 在存储元素的时候,可以自动类型检查
  • 在获取元素的时候,可以自动类型转换
泛型类型的参数不能是简单类型,是不参与类型的组成的。 泛型到底是怎么编译的?
  • 泛型只在编译的时候起作用,在运行的时候是没有泛型的概念的,泛型是为了解决某些容器,算法等代码的通用性而引入,并且能在编译期间做类型检查。
  • 泛型在编译的时候使用的是擦除机制,也就是像Integer,String在编译的时候是存在的,但是在编译的时候被擦除了,所有的T在运行的时候被换成了Object。
class Person{
}
class MyArrayList{//这里实现了一个非常简单的顺序表
    private T[] elem;
    private int usedSize;
    public MyArrayList(){
        this.elem = (T[]) new Object[10];
    }
    public void add(T val){
        this.elem[this.usedSize++] = val;
    }
    public T getPos(int pos){
       return this.elem[pos];
    }
}
public class TestDemo {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person);
        MyArrayList arrayList = new MyArrayList<>();
        System.out.println(arrayList);
        MyArrayList arrayList1 = new MyArrayList<>();
        System.out.println(arrayList1);
    }
    public static void main1(String[] args) {
        MyArrayList arrayList = new MyArrayList<>();
        arrayList.add(1);
        arrayList.add(2);
        //arrayList.add("王");可以自动进行输入类型检查
        int ret = arrayList.getPos(0);//不需要强制类型转换
        System.out.println(ret);
        MyArrayList arrayList1 = new MyArrayList<>();
        arrayList1.add("王");
        arrayList1.add("根");
        String pos = arrayList1.getPos(1);
        System.out.println(pos);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/659335.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号