涂金哲 发表于 2012-8-1 11:52
不会吧,我觉得问题应该出在子类是否一定要加上泛型,应为创建子类对象父类的构造器肯定要去初始化,而父类 ...
其实,你这种用构造方法进行泛型类型传递,限定的只是构造函数的参数类型必须与对象泛型类型一致
你在告诉构造函数,对象必须有一个任意类型参数
另外,泛型是作用于编译时期的,编译器只是会检查你的对象与类的泛型是否一致,如果对象没有写泛型,他就不知道你要用什么类型,他会提示你类上有泛型,如果对象没有,可能会有安全隐患,但并不阻止你编译通过,如果有泛型类型,则可以是任意类型.
其实API中有很多这种例子,比如ArrayList,它的类中就有任意类型泛型,但是你在创建实例对象的时候不加泛型也一样通过编译.
但是你一旦给类上确定了泛型的实际参数类型,那么你创建对象时要么不加泛型,要加就必须跟类的一致
所以创建对象时是可以不加泛型的.
可能说得有点乱,不知道能不能帮助你理解 |