泛型的理解

在创建类、方法、接口时,新建泛型,就是确定了一种唯一的数据类型,可在创建的内部直接作为一种类来使用,例如
(1)声明对象:getInfo(E e)
(2)强转类型:(T)bean
但泛型不能被实例化,需要注意。
而这个泛型的数据类型具体是什么,需要在外部使用带泛型的类或者方法时传入,才能最终确定泛型的数据类型。
其应用如下:

1、泛型在类中的使用:

//新建类时设定泛型E,就是设定E为某种数据类型
public class TestClass<E> {
	//该E的数据类型需等待外部传入,才能确认
    public void getInfo(E e){
        System.out.println("result:"+e);
    };
    //该方法与上面的基本一致,只是数据类型直接提前由方法自己确认为String类型
    public void getInfo2(String s) {
        System.out.println("result2:" + s);
    }
}

2、泛型在方法中的使用:

	//<>内,定义了T是一个泛型,即:其包含了某种唯一的数据类型
    //泛型的上下限:泛型包含某种数据类型,可以继承,本例中,T直接继承了Object类
    //Class<T> clazz由外部的传入,定义了T的具体数据类型是什么
    //getBean前的T,表示了该方法返回的数据的数据类型为已经定义好的T数据类型
    //bean前的(T),表示将获得的数据,强转为T数据类型,返回给外界调用该方法的部分
    public static <T extends Object> T getBean(String beanName, Class<T> clazz) {
        Object bean = container.get(beanName);
        return (T)bean;
    }

3、泛型在接口中的使用:
(1)提前确定泛型,在实现类内部直接确定泛型的数据类型是什么,如:

public class ClassDemo implements InterFaceDemo<String> {

    public void getInfo(String s) {
        System.out.println(s);
    }
}

(2)延迟确定泛型,在调用接口的实现类时,再确定具体泛型时什么数据类型,如:

public class ClassDemo<T> implements InterFaceDemo<T> {

    public void getInfo(T t) {
        System.out.println(t);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值