黑马程序员技术交流社区

标题: 关于泛型问题 [打印本页]

作者: 夏新¤Amoi    时间: 2014-2-23 21:21
标题: 关于泛型问题
学完了泛型之后,回头再看时,发现了个问题.
我想,既然泛型可以定义在方法上,那么泛型可不可以定义在构造方法上呢?
而且泛型要在实例化的时候就要指定类型,那么这个跟构造方法有关系么?

作者: elq7xy    时间: 2014-2-23 22:02
本帖最后由 elq7xy 于 2014-2-23 22:08 编辑
  1. public class Test {
  2.         private Object b; // 定义Object类型成员变量
  3.        
  4.         public Object getB() { // 设置相应getXXX()方法
  5.                 return b;
  6.         }
  7.        
  8.         public void setB(Object b) { // 设置相应setXXX()方法
  9.                 this.b = b;
  10.         }
  11.        
  12.         public static void main(String[] args) {
  13.                 Test t = new Test();
  14.                 t.setB(new Boolean(true)); // 向上转型操作
  15.                 System.out.println(t.getB());
  16.                 t.setB(new Float(12.3));
  17.                 Float f = (Float) (t.getB()); // 向下转型操作
  18.                 System.out.println(f);
  19.         }
  20. }
复制代码

泛型的好处在于向下转型时有时会出错,构造方法中没有类型转换所以不需要泛型。
作者: 张稳    时间: 2014-2-23 23:39
实例化就要定义泛型是告诉编译器在编译阶段必须只能丢特定的类进来,在运行期间泛型这种特征就没有了,这跟构造方法无关!构造方法当然可以用泛型,这意味着此类的实例变量用的是泛型,所以这个类是个泛型类,用于接收可变类型的实例变量。




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