泛型、泛型方法、泛型接口、泛型数组


泛型

由于Obiect可以接收所有类型,用户设置时可以设置任意类型,但是取出值时需要强转。(强转就可能报错)

1、在编译阶段无法检测。
2、JDK1.5引入了泛型,所谓的泛型指的就是在定义类或者方法时,参数的类型暂定,只有在使用时才明确类型。
3、泛型类的语法,这里的T就称为类型参数,可以指代任意类型,只有在使用该类时,才明确类型~

public class Mypoint<T> {
    private T X;
    private T Y;

}

一、泛型使用

1、定义MyPoint类时,x和y的类型不确定,但是使用MyPoint类型时,x和y一定是相同数据类型。

在这里插入图片描述
2、①泛型类中的类型参数一般使用单个的大写字母
  ②当泛型类中需要多个类型参数时,直接在<>使用”,"分隔,使用不同的大写字母来代替。
在这里插入图片描述
在这里插入图片描述
一般来说,泛型的类型参数使用的大写字母就是如下几个字母
E - 普通元素含义,表示单个泛型元素
K,V =>搭配使用,表示键值对对象
T 普通泛型类型参数代号
S 也可以指代泛型参数

二、泛型方法的定义与使用

语法:
访问修饰符 [static]<类型参数>方法名称(){}

1.泛型方法始终以自己的类型参数为准,与类中的类型参数无关。因此,若类中存在泛型方法,一般不要使用重复的大写字母。

public class GenericityMethod<T> {
private T X;
    public <E> void fun(E e){
        System.out.println(e);
    }

    public static void main(String[] args) {
        GenericityMethod <Integer> Method = new GenericityMethod<>();
        Method.fun("hahhahahaha");
    }
}

2、泛型方法可以独立存在,泛型方法所在的类可以不是泛型类~
在这里插入图片描述

三、泛型接口的定义与使用

在这里插入图片描述
1、子类实现泛型接口
①子类仍然是泛型类
在这里插入图片描述
子类仍然保留泛型,没有明确类型print可以接收任意类型

②子类实现泛型接口时,就明确具体类型
在这里插入图片描述
当前子类明确具体类型,print只接收String类型的参数

四、泛型数组

不能new 类型参数的数组

private T[] value; // 可以声明
value = new T[10]; // 错误
在这里插入图片描述

JVM中没有泛型数组,要使用泛型数组,统一使用Obiect数组!

public class GenericityArray<T> {
    private Object[] value = new Object[10];
    // 当前vaLue 数组中存储的元素个数
    private int size;
    // 在使用这个数组时,增删查改,使用方法来操作
	//①
    public void add(T t) {
        value[size++] = t;
    }
    public T get(int index) {
        return (T) value[index];
    }
    //②
    public void add1(Object val) {
        value[size++] = val ;
    }
    public Object get1(int index) {
        return  value[index];
    }
    public static void main(String[] args) {
        GenericityArray<Integer> gennericArray = new GenericityArray<>();
        //这个绝对不会错
        gennericArray.add(10);
        int a = gennericArray.get(0);
        //失去约束,需要强转否则报错。
        gennericArray.add1("123");
        int b = (int)gennericArray.get1(0);
    }

关于该数组的所有增删改查使用方法来操作,其中方法使用类型参数
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小杨爱喝橙汁

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

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

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

打赏作者

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

抵扣说明:

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

余额充值