java泛型的定义

来源:互联网 发布:杭州程序员工资 编辑:程序博客网 时间:2024/06/06 18:30

为什么要是用泛型

  • 是用泛型后意味着编码可以被很多不同类型的对象是重用!
  • 在java中增加泛型设计前,泛型程序设计采用继承实现。ArrayList类只维护一个Object数组,这么做有几个不好的地方,例如下面的例子
    public static ArrayList{        private Object[] elementData;        ...        public Object get(int i){...}        public void add(Object o){...}    }
1. 这里在获取值的时候必须要强制转换2. 这里没有错误检查,可以向数组中添加任何类型的对象这就导致了当Object为String时,强制转换为int时会报错

泛型的定义

  • 类的定义
    泛型就是一个具有一个或多个变量的类。
    public class Pair<T>{        private T first;        private T second;        public Pair(){            first = null;            second = null;        }        public T getFirst(){            return first;        }        public T getSecond(){            return second;        }        public void setFirst(T newVlue){            first = newVlue;        }        public void setSecond(T newValue){            second = newValue;        }    }

在这里pair类引入一个类型变量T,你也可以引入多个类型变量

    public class Pair<T,u>{        ...    }

这里的变量类型指定方法的返回类型和局部变量例如:

    private T first;

泛型方法

  • 和泛型的类一样指定类型参数
    public class ArrayAlg{        public static <T> T getMidd(T... a){            return a[a.lenght / 2];        }    }

类型变量放在修饰符的后面(public static)返回类型的前面
泛型方法的定义可以放在泛型类中也可以放在普通类中

  • 如何调用泛型方法
    String middle = ArrayAlg.<String>getMiddle("John","Q.","Public");

在调用方法时,在方法前的尖括号中放入具体的类型。当然在多数情况下我们可以省略具体的类型!编译器也可以额推导出来。这里指的是尖括号中的String类型

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 助理消防工程师报考条件 一级消防工程师真题 注册消防工程师好考吗 一级消防好考吗 二级注册消防工程师报名时间 注册消防工程师前景 消防工程师考试题型 助理消防工程师 一级消防工程师论坛 注册消防工程师考试难度 一级消防工程师考试题型 注册二级消防工程师 注册消防工程师论坛 一级注册消防工程师教材 注册消防工程师报名 二级消防工程师考试科目 消防工程师报考条件二级 二级注册消防工程师报考条件 一级注册消防工程师论坛 二级消防工程师好考吗 一级注册消防工程师招聘 注册消防工程师难考吗 考一级消防工程师有用吗 消防工程师难度 一消防工程师 一级消防工程师考试难度 一级消防工程师好考吗 消防工程师待遇 注册消防工程师一级二级区别 一级注册消防工程师好考吗 注册消防工程师好不好考 一级消防工程师难度 二级注册消防工程师考试科目 二级消防考试时间 一级消防工程师招聘 陕西二级消防工程师报名时间 2017消防工程师考试时间 消防工程师代报名 消防技术综合能力 一级注册消防工程师报考条件 河北二级消防工程师报名时间