泛型应用及例子

转载: https://segmentfault.com/a/1190000014120746

1.泛型存在的意义

泛型实际上是参数化类型,将类型明确的工作推迟到调用类或者方法去执行

2.泛型的必要性:

早期我们是使用Object类,进行代表任意的类型。

但是比如:List,Collection 是没有类型限制,比如: List之前放的是Cat对象,后来又放入的dog对象。获取dog对象我们需要强转。但是引用泛型就不会。

泛型的优势:代码更加简洁【不用强制转换】,程序更加健壮【只要编译时期没有警告,那么运行时期就不会出现ClassCastException异常】

3.泛型定义:

泛型定义在类上,运行到这个类的时候,我们才会确定这个类是什么类型,同理类比方法中的参数。

举例定义在类上: 

//T为表示类型,使用到该类的时候再进行确定
public class Fanxing<T> {
    public T TContent;

    public T getTContent() {
        return TContent;
    }

    public void setTContent(T tContent) {
        TContent = tContent;
    }
    
    
    public static void main(String[] args){
        Fanxing<String>  fanxingSt = new Fanxing<String>();
        fanxingSt.setTContent("dd");
        
        //设置user类型
        Fanxing<User>  fanxingUser = new Fanxing<User>();
        fanxingUser.setTContent(new User("dd",25));
    
    }

}

有时候不需要定义在类上,我们只需要定义在某个方法中

举例定义在方法上:方法:getDiferentType

 

//T为表示类型,使用到该类的时候再进行确定
public class Fanxing<T> {
    public T TContent;

    public T getTContent() {
        return TContent;
    }

    public void setTContent(T tContent) {
        TContent = tContent;
    }
    /**
     * 不管传入什么类型都转为String类型
     * @param e
     */
     public <T> String getDiferentType(T e){
          System.out.println(e.getClass().getName());
         String stvalue = String.valueOf(e);
         return stvalue;
         
     }
    
    public static void main(String[] args){
        //设置String类型
        Fanxing<String>  fanxingSt = new Fanxing<String>();
        fanxingSt.setTContent("dd");
        
        //设置user类型
        Fanxing<User>  fanxingUser = new Fanxing<User>();
        fanxingUser.setTContent(new User("dd",25));
        
        //使用泛型的方法 
        fanxingUser.getDiferentType(12);
        fanxingUser.getDiferentType("ddd");
        String floatSt = fanxingUser.getDiferentType(12.2585);
        System.out.print(floatSt);
    
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值