黑马程序员技术交流社区

标题: 什么叫泛型啊 可以举些例子吗 他的具体作用是什么 [打印本页]

作者: 李健_8    时间: 2012-9-16 14:27
标题: 什么叫泛型啊 可以举些例子吗 他的具体作用是什么
本帖最后由 火火 于 2012-9-17 00:55 编辑

关于泛型
作者: 马睿    时间: 2012-9-16 14:42
通俗的讲,泛型就是模板……模板懂得吧?你往一个往一个模具里放水泥,水泥只能放那么多,而且只能是模板的造型
简单的例子:
例如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类,下限限定

作者: 李健_8    时间: 2012-9-17 00:04
谢谢啊  貌似有点小懂了了  但是好像不常用啊 在编程时
作者: 李健_8    时间: 2012-9-17 00:05
马睿 发表于 2012-9-16 14:42
通俗的讲,泛型就是模板……模板懂得吧?你往一个往一个模具里放水泥,水泥只能放那么多,而且只能是模板的 ...

谢谢啊  貌似有点小懂了了  但是好像不常用啊 在编程时




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2