java 泛型

泛型是指可以为引用类型数据指定参数(参数化类型的能力),也就是说为所操作的数据类型指定为一个参数,在编译阶段编译器会用具体的类型来代替这个参数

泛型的主要目的是提高Java程序的类型安全,通过知道使用泛型定义的变量的类型限制,编译器可以提前验证类型假设

消除源代码中许多强制类型转换,使得代码更加可读,并且减少了出错机会

泛型为优化JVM提供了可能,在泛型的实现方式中,支持泛型(几乎)不需要更改JVM或文件,所有类型擦除都在编译器中完成,最后生成没有泛型类型的字节码文件

定义泛型语法:

【访问符】 class 类名<类型参数列表>{

//类体

}

实例化泛型类的语法:

类名<类型参数列表> 对象 = new 类名<类型参数列表>(【构造方法参数列表】)

泛型类型参数就是个占用符,在泛型对象实例化中,把所有占用符利用实例类名替换即可

泛型继承的原则是:所有泛型的类型参数在使用是都能被指定为特定的类型,要么开发者指定要么编译器可以推断出来

泛型继承常用形式:

子类与父类的参数类型一致

class Sub<T>extend Base<T>{}

子类增加了一个泛型参数,父类的泛型参数不能遗漏

class Sub<T,V>extend Base<T>{}

package nt.Fanxing.cm;
class Base<T>{
    T data;
    public Base(){};
    public Base(T data){
        this.data=data;
    }
    void showType(){
        System.out.println("Base T:"+data.getClass().getName());
    }
}
class Sub<T,V>extends Base<T>{
    private T data;
    private V type;
    public Sub(T data,V type){
        super(data);
        this.type=type;
    }
    void showType(){
        super.showType();
        System.out.println("Sub V:"+type.getClass().getName());
    }
}
public class Fanxing {
    public static void main(String[] args){
        Sub<String, Integer> sub = new Sub<>(new String("XX"), new Integer(99));
        sub.showType();
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值