黑马程序员技术交流社区

标题: 泛型和通配符?有什么区别? [打印本页]

作者: 蒙武辉    时间: 2012-2-18 02:38
标题: 泛型和通配符?有什么区别?
泛型和通配符?有什么区别?可以取个例子说明下吗?

作者: 丁晓宇    时间: 2012-2-18 03:35
{:soso_e163:}
泛型其主要目的是加强类型安全及减少类转换的次数
{:soso_e163:}
通配符是一种特殊语句一般是用来模糊匹配的

这俩东西完全不搭边的啊  。。。 蜗牛不是牛
作者: 戚雪晖    时间: 2012-2-18 08:49
泛型是为了安全性而产生的。而通配符用途比泛型还要广泛,如楼上所说是用来模糊匹配。
当通配符“?”来匹配泛型时候,函数前面是不用定义泛型的<T>的,后边直接用“?”就可以代表任意类型,前提是你所想代表的类型,之前必须有创建。
例如:
class Demo
{
        //泛型方法定义
        public Demo1 getDemo1(Demo1<?> d)
        {
                return d;
        }
                //也可以做如下定义
              /*
               public <T> Demo1 getDemo1(Demo1<T> d)
        {
                return d;
        }
              */
}
//下面是已经创建的带泛型的类
class Demo1 <T>
{
        public void pp(T t)
        {
                System.out.println(t);
        }
}

作者: 李晓俊老师    时间: 2012-2-18 10:12
通配符在泛型中,是一种不确定的表现形式.本来泛型是一种安全机制,是限定数据类型的,而当你是在不确定数据类型时,可以用它来表示,或者来占位,,通配符不是还叫占位符么,就是这个意思.显然这样做,就等于没有限定类型,它可以接收任何类型的数据.因此它 是不安全的,,,
作者: 花开~的季节    时间: 2012-2-18 11:20
如 List<Integer> intList = new ArrayList<Integer>();
                List<String> strList = new ArrayList<String>();
泛型,当你不确定<>里面的类型时,就可以用通配符?




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