zoukankan      html  css  js  c++  java
  • java中的泛型

    1.什么是泛型

    阅读jdkAPI文档时,经常会见到<E>。其实这就是泛型。例如Collection<E>代表的是集合里只能放某一个类的对象。

    2.泛型的好处

    (1)提高安全性(将运行期的错误转换到编译期)

    (2)省去强转的麻烦

    3.泛型的基本使用

    <>中放的必须是引用数据数据类型

     public static void main(String[] args) {
            ArrayList<Students> arrayList = new ArrayList<>();
            arrayList.add(new Students("张三",13));
            arrayList.add(new Students("李四",14));
            arrayList.add(new Students("王五",15));
    
            ListIterator<Students> it = arrayList.listIterator();
            while (it.hasNext()){
                Students s = it.next();
                System.out.println(s);
            }
        }

    4.泛型使用注意事项

    前后的泛型必须一致,或者后面的泛型可以省略不写(JDK1.7的新特性菱形泛型)

    5.编写泛型类

    public class Tools<E> {
        private E e;
    
        public E getObj(){
            return e;
        }
    
        public void setObj(E e){
            this.e = e;
        }
    }

    6.编写泛型方法

    public class Test12 {
        public<E> void show(E e){
            System.out.println(e);
        }
    
        public static void main(String[] args) {
            Test12 t = new Test12();
            t.show(true);
        }
    }

    注意:如果是编写泛型类的时候,里面有静态方法,静态方法必须声明自己的泛型。因为静态方法是随着类的加载而加载的,这时候还没有对象。

    public class Tools<E> {
        private E e;
    
        public E getObj(){
            return e;
        }
    
        public void setObj(E e){
            this.e = e;
        }
        public static<T> void show(T t){
            System.out.println(t);
        }
    }

    7.编写泛型接口

    interface Inter<T>{
        public abstract void show(T t);
    }
    public class Test13 implements Inter<String>{
        @Override
        public void show(String s) {
            System.out.println(s);
        }
    }

    8.泛型通配符

    ? 可以代表任意类型

    ? extends E  向下限定,可以表示E以及其子类

    ? super E  向上限定,可以表示E以及其父类

  • 相关阅读:
    redis基础
    docker日志清理脚本
    Hive修改表的所有者(Owner)
    User xxx does not have privileges for CREATETABLE的解决办法
    Spark读取Hive表中文显示乱码的解决办法
    Go语言之标识符与关键字
    Go语言之数据类型(三)
    bootstrapTable频繁向后台接口发请求
    框架整合疑云
    业务开发中-设计模式使用
  • 原文地址:https://www.cnblogs.com/chichung/p/10249153.html
Copyright © 2011-2022 走看看