黑马程序员技术交流社区

标题: java泛型? [打印本页]

作者: 黑马薛有义    时间: 2011-7-28 09:04
标题: java泛型?
我创建了一个泛型类,class Object<T>{},现在我要在Object<T>类中new类型为T的对象,应该怎么做?
T ob = new T();编译器不让过。
作者: 匿名    时间: 2011-7-28 09:49
当你创建T对象时,必须指定持有什么类型的对象。

java泛型就是你告诉编译器你使用什么类型,然后编译器帮你处理一切细节
作者: 匿名    时间: 2011-7-28 10:08
楼上说的很在理: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]从上面可以看出,我们可以定义一个泛型类,但是这个泛型类要在使用的时候传入一个时机的类型参数




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