Kotlin(2.8)泛型
来源:互联网 发布:大数据应用启示录 编辑:程序博客网 时间:2024/06/06 01:05
2-知识点汇总
1、如何使用泛型
//类似Java的声明class Box<T>(t: T) { var value = t}val box: Box<Int> = Box<Int>(1) //完整形式val box = Box(1) //可推测出时,可以省略参数类型。
2、和Java区别
- Java有通配符(wildcard type),Kotlin没有
- Kotlin中有declaration-site variance(声明-位置 变化量)和type projections(类型预测)
3、Java中的泛型
- Java中泛型是不变量:List不是List的子类
- Java中应该使用泛型限制List<? extends E>,使得List是其子类。
- List
fun copy(from: Array<out Any>, to: Array<Any>) { // ...}
表明from不仅是数组,而且是被保护的。
7、使用点变化量:相反于形如Java中Array
fun fill(dest: Array<in String>, value: String) { // ...}
这等于Array<? super Object>
,可以传入CharSequence或者object的数组。
8、‘*’星号预测
!!!!!
9、泛型函数
一般泛型函数:泛型在函数名前
fun <T> singletonList(item: T): List<T> { // ...}
扩展函数:T.fun()
fun <T> T.basicToString() : String { //扩展函数 // ...}
10、泛型的限制:Upper bounds
fun <T : Comparable<T>> sort(list: List<T>) { // ...}
T必须为Comparable的子类。
11、需要两个及以上限制:
使用where包含
fun <T> copyWhenGreater(list: List<T>, threshold: T): List<String> where T : CharSequence, //两个限制 T : Comparable<T> { return list.filter { it > threshold }.map { it.toString() }}
阅读全文
0 0
- Kotlin(2.8)泛型
- Kotlin-泛型
- Kotlin 泛型
- Kotlin-泛型
- Kotlin汇总4-泛型
- Kotlin基础教程-泛型
- Kotlin-15.泛型(generics)
- Kotlin 第十二章:泛型
- Kotlin
- Kotlin
- Kotlin
- Kotlin
- kotlin
- kotlin
- Kotlin
- Kotlin
- Kotlin
- Kotlin
- MyCAT 源码分析 —— SQL ON MongoDB
- 移动端如何让页面强制横屏
- SQL多表查询
- HTML 4.01 快速参考
- 1_0_10_Orcale_数据库服务启用
- Kotlin(2.8)泛型
- 康拓展开
- 浅谈OOP
- 最简单的方法搞定键盘遮挡
- springmvc文件上传
- atom前端常用插件
- linux自动连接校园网设置
- SQL分组统计查询
- 笔记-话题模型&LDA