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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhangx 中级黑马   /  2013-4-18 11:42  /  1219 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zhangx 于 2013-4-19 08:18 编辑

不是说通配符可以接收任意的泛型对象,为什么下面代码错了?错在哪?
class Info<T>{
        private T var ;                // 定义泛型变量
        public void setVar(T var){
                this.var = var ;
        }
        public T getVar(){
                return this.var ;
        }
        public String toString(){        // 直接打印
                return this.var.toString() ;
        }
};
public class Demo{
        public static void main(String args[]){
                Info<?> i = new Info<String>() ;                // 使用String为泛型类型
                i.setVar("ABV") ;                                                        // 设置内容
        }
};

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

2 个回复

倒序浏览
左右两边要一致Info<String> i = new Info<String>() ;

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
在你这个例子中,我看出两个错误。
第一,你在new对象的时候,左右两边的泛型应该是一致的,要么都是<String>或者<Integer>

第二,Info<String> i = new Info<String>() ; Info,是一个类 类型的对象,你在创建它的时候,怎么能使用<String>呢?这也太搞笑了吧?

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

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