A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 火火 于 2012-9-17 00:55 编辑

关于泛型

3 个回复

倒序浏览
通俗的讲,泛型就是模板……模板懂得吧?你往一个往一个模具里放水泥,水泥只能放那么多,而且只能是模板的造型
简单的例子:
例如arrayList<E>
其中E就是你要自己给出的模板,你想放什么类型就用什么

arrayList<Integer> list = new arrayList<Integer>
这样定义后list中,只能放入Integer类型了(不然放不下过多的水泥,可以这样理解,其他水泥样子规格不对)



以下为我个人笔记的一部分



泛型
<E>为泛型

1.类型泛型
class name<E>
{
        public E method()
        {
                return E;
}
}

2.方法泛型
class name
{
        public static <E> method(E parameter)
        {
                return E
}
}
注意方法泛型 <E>必须写在权限和static描述修饰符后面
如果是静态方法必须在static后面加上<E>(因为静态方法,传入参数必须也是静态类型)

3.接口泛型
interface name<E>
{
        void method(E)
}
class studend implemnts name<String>

泛型限定
当不确定传入类型的时候可以< ?>以问号表达

注意泛型不可以用父子类多态
ArrayList<Person> p = new ArrayList<Student>();这句是错误的!!!!!!不可以
因为后者只能放入student而前者只能放person到集合之中


还有可以限定部分类型
<? extends>意思是可以传入E类型或者其子类,上限限定
<? super E>意思是可以传入super类(E的父类)也可以是E类,下限限定
回复 使用道具 举报
谢谢啊  貌似有点小懂了了  但是好像不常用啊 在编程时
回复 使用道具 举报
马睿 发表于 2012-9-16 14:42
通俗的讲,泛型就是模板……模板懂得吧?你往一个往一个模具里放水泥,水泥只能放那么多,而且只能是模板的 ...

谢谢啊  貌似有点小懂了了  但是好像不常用啊 在编程时
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马