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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蒙武辉 黑马帝   /  2012-2-18 02:38  /  2150 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

泛型和通配符?有什么区别?可以取个例子说明下吗?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

4 个回复

倒序浏览
{:soso_e163:}
泛型其主要目的是加强类型安全及减少类转换的次数
{:soso_e163:}
通配符是一种特殊语句一般是用来模糊匹配的

这俩东西完全不搭边的啊  。。。 蜗牛不是牛

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
泛型是为了安全性而产生的。而通配符用途比泛型还要广泛,如楼上所说是用来模糊匹配。
当通配符“?”来匹配泛型时候,函数前面是不用定义泛型的<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);
        }
}

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
通配符在泛型中,是一种不确定的表现形式.本来泛型是一种安全机制,是限定数据类型的,而当你是在不确定数据类型时,可以用它来表示,或者来占位,,通配符不是还叫占位符么,就是这个意思.显然这样做,就等于没有限定类型,它可以接收任何类型的数据.因此它 是不安全的,,,

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
如 List<Integer> intList = new ArrayList<Integer>();
                List<String> strList = new ArrayList<String>();
泛型,当你不确定<>里面的类型时,就可以用通配符?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马