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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

夏新¤Amoi

中级黑马

  • 黑马币:3

  • 帖子:37

  • 精华:0

© 夏新¤Amoi 中级黑马   /  2014-2-23 21:21  /  1282 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学完了泛型之后,回头再看时,发现了个问题.
我想,既然泛型可以定义在方法上,那么泛型可不可以定义在构造方法上呢?
而且泛型要在实例化的时候就要指定类型,那么这个跟构造方法有关系么?

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

2 个回复

倒序浏览
本帖最后由 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. }
复制代码

泛型的好处在于向下转型时有时会出错,构造方法中没有类型转换所以不需要泛型。

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
实例化就要定义泛型是告诉编译器在编译阶段必须只能丢特定的类进来,在运行期间泛型这种特征就没有了,这跟构造方法无关!构造方法当然可以用泛型,这意味着此类的实例变量用的是泛型,所以这个类是个泛型类,用于接收可变类型的实例变量。

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

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