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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马薛有义 黑马帝   /  2011-7-28 09:04  /  1588 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我创建了一个泛型类,class Object<T>{},现在我要在Object<T>类中new类型为T的对象,应该怎么做?
T ob = new T();编译器不让过。

2 个回复

倒序浏览
黑马网友  发表于 2011-7-28 09:49:55
沙发
当你创建T对象时,必须指定持有什么类型的对象。

java泛型就是你告诉编译器你使用什么类型,然后编译器帮你处理一切细节
回复 使用道具 举报
黑马网友  发表于 2011-7-28 10:08:16
藤椅
楼上说的很在理:lol
我么定义一个带泛型声明的类Apple<T>,再实际使用Apple<T>类的时候会为T传入实际的类型,这样就可以生存多个逻辑子类(物理上并不存在)
如:[code=java]package cn.itcast.heima
import java.util.*;
//定义Apple类时使用了泛型声明
public class Apple<T>
{
        //使用T类型形参定义属性
        private T info;

        public Apple(){}
        //下面方法中使用T类型形参来定义方法
        public Apple(T info)
        {
                this.info = info;
        }
        public void setInfo(T info)
        {
                this.info = info;
        }
        public T getInfo()
        {
                 return this.info;
        }
        public static void main(String[] args)
        {
                //因为传给T形参的是String实际类型,所以构造器的参数只能是String
                Apple<String> a1 = new Apple<String>("苹果");
                System.out.println(a1.getInfo());
                //因为传给T形参的是Double实际类型,所以构造器的参数只能是Double或者double
                Apple<Double> a2 = new Apple<Double>(5.67);
                System.out.println(a2.getInfo());
        }
}[/code]从上面可以看出,我们可以定义一个泛型类,但是这个泛型类要在使用的时候传入一个时机的类型参数
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马