java泛型使用介绍

1

2

3,泛型方法

类不需要是泛型类,例子

public class mainTest {

    public <T> void f(T x){
        System.out.println(x.getClass().getName());
    }
    public static  void main(String []args)
    {
        mainTest mt=new mainTest();
        mt.f("");
        mt.f(1);
        mt.f(1.0);
        mt.f(1.0F);
        mt.f('c');
        mt.f(mt);

    }


}

输出:

java.lang.String
java.lang.Integer
java.lang.Double
java.lang.Float
java.lang.Character
com.th.model.mainTest

 

T x获取Class,进而获取实例

 

 

泛型边界擦除,仅仅是容器

class HasF{
    public void  f()
    {
        System.out.println("HasF.f()");
    }

}

class Manipulator<T>{

    private T obj;
    public Manipulator(T x){
        obj=x;
    }
    public void manipulate(){
        obj.f();  //无法识别,编译错误
    }
}

public class mainTest2 {

public static void main(String []args)
{
    HasF hasf=new HasF();
    Manipulator<HasF>mp=new Manipulator<HasF>(hasf);
    mp.manipulate();


}

}

修改如下

class HasF{
    public void  f()
    {
        System.out.println("HasF.f()");
    }

}

class Manipulator<T extends HasF>{

    private T obj;
    public Manipulator(T x){
        obj=x;
    }
    public void manipulate(){
        obj.f();
    }
}

public class mainTest2 {

public static void main(String []args)
{
    HasF hasf=new HasF();
    Manipulator<HasF>mp=new Manipulator<HasF>(hasf);
    mp.manipulate();


}

}

即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值