泛型--Generic
Posted 1016391912pm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了泛型--Generic相关的知识,希望对你有一定的参考价值。
.net framework 2.0推出的新语法
适用于:用一个泛型方法,满足不同参数类型,做相同的事情
延迟声明:把参数类型的声明推迟到调用
不是语法糖,而是由框架升级提供的功能
public void GenericMethod<T>(T tParameter)...; //也可以使用别的字符代表泛型,不能使用关键字,可以使用中文
调用:GenericMethod<int>(1); 或者 GenericMethod(1);//省略<int>时,会自动根据参数类型判定
泛型需要编译器支持+JIT支持
泛型使用的是占位符操作 ~1代表一个占位符
泛型的性能和普通方法差不多~但好处多多
几种用法:
泛型类继承(接口同理):
泛型约束(constraint):
基类约束(限定为People类或其子类):
注:作为约束使用的类型必须是接口、非密封类或类型参数
其中 T tNew = default(T); 会根据T的不同 赋予默认值
上面几种类型约束可以叠加使用(部分),用逗号分隔
协变
逆变
泛型缓存
每个不同类型的T,都会生成一份不同的副本
适合不同类型需要缓存一份数据的场景,效率高(缓存直接存放在内存中,用的时候直接拿)
不能主动释放,直到程序关闭
以上是关于泛型--Generic的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin泛型 ① ( 泛型类 | 泛型参数 | 泛型函数 | 多泛型参数 | 泛型类型约束 )
Java 泛型泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )
Kotlin泛型总结 ★ ( 泛型类 | 泛型参数 | 泛型函数 | 多泛型参数 | 泛型类型约束 | 可变参数结合泛型 | out 协变 | in 逆变 | reified 检查泛型参数类型 )
java泛型的一些知识点:Java泛型--泛型应用--泛型接口泛型方法泛型数组泛型嵌套
Kotlin泛型 ③ ( 泛型 out 协变 | 泛型 in 逆变 | 泛型 invariant 不变 | 泛型逆变协变代码示例 | 使用 reified 关键字检查泛型参数类型 )