首页 > 编程语言 > 详细

java_泛型

时间:2020-03-04 15:43:14      阅读:73      评论:0      收藏:0      [点我收藏+]

此为毕向东老师的上课笔记,搬运到此只为方便自己查看

泛型:jdk1.5以后出现的安全机制

好处:

  1.将运行时的问题ClassCastException转到了编译时期

  2.避免了强转的麻烦

<>:什么时候用?

答:当操作的引用数据类型不确定的时候就用<>,将要操作的引用数据类型传入即可,其实<>就是一个用于接收具体引用数据类型的参数范围

在程序中只要用到了带有<>的类或者接口,就要明确传入的具体引用数据类型

泛型技术是给编译器使用的技术,用于编译时期,确保了类型的安全,运行时,会将泛型去掉,生成的class文件中是不带泛型的,这个称为泛型的擦除

泛型在集合中的应用:

Person类是已定义类

import java.util.Iterator;
import java.util.TreeSet;

public class GenericDemo {
    public static void main(String[] args) {
        TreeSet<Person> ts = new TreeSet<Person>();
        ts.add(new Person("lisi",12));
        ts.add(new Person("lisi2",13));
        ts.add(new Person("lisi3",14));
        ts.add(new Person("lisi4",15));
        Iterator<Person> it = ts.iterator();
        while(it.hasNext()) {
            Person p = it.next();
            System.out.println(p);
        }
    }
}

运行结果:Exception in thread "main" java.lang.ClassCastException: collectiondemo.Person cannot be cast to java.lang.Comparable

解决:使Person类继承Comparable接口,重写compareTo(Person p)方法,

public int compareTo(Person p){
          int temp = this.age - p.age;
          return temp ==0?this.name.compareTo(p.name):temp;
}

java_泛型

原文:https://www.cnblogs.com/dengbiao/p/12409560.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!