理解泛型(泛型是什么,什么时候用到它,用它的好处是什么)

泛型 就是 写一个方法,然后通过不同的 数据类型 共同调用。

为什么要用泛型呢(原理)?

遇到底层代码一样,但是传入参数 数据类型 不一样的时候,最好的解决方式就是泛型了。

什么又是泛型约束呢?

就是什么样的 数据类型 才能执行,引用类型?值类型?

public static T getT<T>(T t) where T:class // class 必须满足引用类型
{
return default(T);//返回的默认值 NULL
}

public static T getT<T>(T t) where T:class,new() // new() 无参构造函数
{
T ttt= new T
return default(T);//返回的默认值 NULL
}

public static T getT<T>(T t) where T:struct // struct 必须满足值类型
{
return default(T);//返回的默认值
}

最实用的约束 (被某个类型约束)

public static T getT<T>(T t) where T:User // 所有User子类
{
t.Name;//可以打点
t.age;
return default(T);//返回的默认值 NULL
}

泛型的好处是什么呢

装箱操作和拆箱操作是要额外耗费cpu和内存资源的,所以之后引入了泛型来减少装箱操作和拆箱操作消耗
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,403评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,931评论 18 399
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 9,712评论 0 16
  • 在之前的文章中分析过了多态,可以知道多态本身是一种泛化机制,它通过基类或者接口来设计,使程序拥有一定的灵活性,但是...
    _小二_阅读 3,933评论 0 0
  • 老婆老家
    喃客阅读 1,170评论 0 0