Java泛型简述

泛型的特点:

  1. 声明泛型时的位置特殊,用<>来声明
  2. 使用方法与其他变量类型没有太大差异
  3. 主要作用是可以让不同的变量类型进行统一操作,包括引用数据类型和对象
  4. 与Object相比的好处有:不需要强制类型转换,提高效率;编译时较安全

带泛型的方法:

//参数可以接收任何数据类型的数组
public  static <E> void print(E[] arrays){
        for(E e: arrays){
            System.out.println(e);
        }
 }
 //参数只能接收整数数组
 public  static <E extends Integer> void print(E[] arrays){
        for(E e: arrays){
            System.out.println(e);
        }
    }
    
public static  void main(String[] args){
        Integer[] is = new Integer[]{1,2,3};//一样要用引用类型
        Double[] ds = new Double[]{1.1,2.2,3.3};
        print(is);
        print(ds);//如果是用第二个print方法,这里会报错
}

带泛型的类:


public class XX<X extends  Student> {
//X extends  Student  筛选参数类型
//若去掉extends  Student,则可以接收任何变量类型 
    private X x;

    public X getX() {
        return x;
    }

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

//一个简单的实体类
public class Student {
    private Integer sno;
    private String sname;

    public Student(Integer sno,String sname){
        setSno(sno);
        setSname(sname);
    }

    public Integer getSno() {
        return sno;
    }

    public void setSno(Integer sno) {
        this.sno = sno;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    @Override
    public String toString() {
        return "Student{" +
                "sno=" + sno +
                ", sname='" + sname + '\'' +
                '}';
    }
}


public static  void main(String[] args){
        XX<Student> xx1 = new XX<>();
        xx1.setX(new Student(111,"李老师"));
        System.out.println(xx1.getX().toString());
        //这里是不是感觉很熟悉,有点类似于List<Student> = new ArrayList<>;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值