泛型的理解

泛型的意义:类型的参数化,就是可以把类型像方法的参数那样传递。

1、泛型只存在于编译期间

2、泛型在语法中的特征就是尖括号

3、泛型的核心原理:利用Object引用可以指向任意类型的对象

问题:Java中有些类型不是对象类类型咋办?

Java专门为8种基本类型定义了各自对应的类类型

            int -> Integer char -> Character

其他的都是首字母大写即可

注:泛型的尖括号不可能出现基本类型

4、使用泛型

A<Strirng> a = new A <> ();

B<Strirng,String> b = new B <> ();

C<Random,Strirng,Random,Scanner> c = new C <> ();

5、以下代码加深理解:

//元素类型明确为long类型
public class MyArrayList1 {

    private long[] array;
    private int size;

    public MyArrayList1(){

        array = new long[10];
        size = 0;
    }

    public void add(long e){
        array[size] = e;
        size++;
    }
}
public class MyArrayList2<E> {

    //在本类中可以把E当作一种类型来使用
    private E[] array;
    private int size;

    public MyArrayList2(){

        //泛型不允许定义数组
        array = (E[]) new Object[10];
        size = 0;
    }

    public void add(E e){
        array[size] = e;
        size++;
    }
}

import java.util.Random;

public class UseMyArrayList {
    public static void main(String[] args) {
        MyArrayList1 list1 = new MyArrayList1();
        list1.add(1);
        list1.add(2);

        //对于泛型来说,类型是在使用该类时才明确定义出来的
        //<String> 用String赋值给定义 MyArrayList2 时的E
        MyArrayList2<String> list2  = new MyArrayList2<String>();
        list2.add("1");

        MyArrayList2<Long> list3  = new MyArrayList2<Long>();
        list3.add(1L);

        MyArrayList2<Random> list4 = new MyArrayList2<>();
        list4.add(new Random());
    }
}

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薰衣草2333

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值