kotlin泛型基本使用】的更多相关文章

泛型,即 "参数化类型",将类型参数化,可以用在类,接口,方法上. 与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼. 声明一个泛型类: class Box<T>(t: T) { var value = t } 创建类的实例时我们需要指定类型参数: val box: Box<Int> = Box<Int>(1) // 或者 val box = Box(1) // 编译器会进行类型推断,1 类型 Int,所以编译器知…
在上一次https://www.cnblogs.com/webor2006/p/11234941.html中学习了数据类[data class]相关的知识,这次会学习关于泛型相关的东东,其中有关于泛型我经常不太理解的关于<? extends T>和<? super T>的使用方式,所以好好学习,天天向上. 密封类(sealed class): 关于这个类,我们在上一次学习中其实是提到过这个关键字,回忆一下: 所谓密封,就是将东东给包装起来,然后我们要使用只能使用包装好里面受限的东东…
fun <T:Comparable<T>> sort(list :List<T>){} 冒号之后指定的类型就是泛型参数的上界,对于泛型参数T,只允许使用Comparable<T>的子类型…
fun<T> singletonList(item:T):List<T>{ ..... } fun<T>T.basicToString():String{ .... } 调用泛型的函数,应该在函数名称之后指定调用端类型参数: val i =singletonList(Int)()…
如果一个泛型类型中存在多个类型的参数,那么每个类型的参数都可以单独投射,例如:如果类型定义为:"interface Function<in T,out>",那么可以出现以下的几种星号投射: Function<*,String>,代表Function<in Nothing,String> Function<Int,*>,代表Function<Int,out Any?> Function<*,*>,代表Function…
fun main(arg: Array<String>) { var ints:Array<Int> = arrayOf(, , ) val any =Array<Any>(){} copy(ints,any)//编译错误,因为Array<Int>不是Array<Any>的子类型 } fun copy(from :Array<Any>,to:Array<Any>){ assert(from.size==to.size) f…
class box<T> (t :T){ var vlaue =t } fun main(arg: Array<String>) { val box1:box<Int> = box() val box2:box<String> = box("haha") println(box1.vlaue) print(box2.vlaue) }…
星投影(star projection): 继续来学习Kotlin泛型相关的东东,星投影(star projection),这是个啥东东呢?下面先来说一下概念: 1.对于Star<out T>协变:如果T的上界是TUpper,那么Star<*>就相当于Star<out T>,这表示当T的类型未知时,你可以安全地读取TUpper类型的值,言外之意就是从Star<*>取出来的元素都会当成TUpper类型. 2.对于Star<in T>逆变:Star&…
C#泛型的抗变与协变 学习自 C#本质论6.0 https://www.cnblogs.com/pugang/archive/2011/11/09/2242380.html Overview 一直以来,被抗变与协变的定义搞得头昏脑涨掰持不清,如果在加上泛型在其中作祟,就更加两眼发懵了.所以就暂时略过了这一拦路虎,但是今天在学习Kotlin泛型的时候再一次碰到了这里拦路虎,只硬着头皮迎难而上了. 抗边与协变的定义 协变: 子类想父类方向的类型转换称之为协变 //string[] 向 object[…
Kotlin 参考 官网 reference kotlin实战 Try Kotlin Kotlin China Github 简介 Kotlin是一门把Java平台作为目标的新的编程语言.它简洁.安全.优雅而且专注于和Java代码间的互操作性.它几乎可以用于如今Java遍及的所有地方. Kotlin是静态类型的,支持类型推断的,在保持代码精简的同时维持准确性和性能. kotlin同时支持面向对象和函数式编程风格,通过把函数放在一等公民的位置实现更高层次的抽象,通过支持不可变值简化了测试和多线程开…
Kotlin介绍 转 https://www.jianshu.com/p/d30406daaf25 Google在今年的IO大会上宣布,将Android开发的官方语言更换为Kotlin,作为跟着Google玩儿Android的人,我们必须尽快了解和使用Kotlin语言. 不过Kotlin毕竟是语言级别的新事物,比起Java来说,从编程思想到代码细节都有不少变化,我们最好先对Kotlin有个整体的基本的了解,然后再去学习和使用,这样才能高效地掌握Kotlin语言. Java的辉煌与阴影 1995年…
在java泛型中中会有 ? extends E 可以解决类似于List<String> 赋给List<Object>  的问题,但是在kotlin泛型中并没有提供通配符,而是out和in关键字,用out声明的泛型占位符只能在获取泛型类型赋值,如函数的返回值,用in声明的泛型占位符只能在设置泛型类型值得地方,如函数的参数. abstract class Source<out T>{ abstract fun nextT():T } fun demo (str:Source…
Kotlin 以其简洁的特性而闻名,而在我们的实践中,更加简洁就意味着更加高效.事实上,在使用 Kotlin 的专业 Android 开发者中,有多达 67% 的人表示 Kotlin 已经帮助他们提升了生产力.在接下来的内容中,我会分享一些 Kotlin 帮助我们的合作伙伴工程师们提高生产力的方式,并为您介绍有助于此的 Kotlin 功能. 在使用 Kotlin 的专业 Android 开发者中,有多达 67% 的人表示 Kotlin 已经帮助他们提升了生产力 简洁.简单且高效 Kotlin 的…
一.引言 正如官网的slogan所描述:kotlin,是一门让程序员写代码时更有幸福的现代语言. 同时,也正如维基百科里介绍: JetBrains公司希望Kotlin能够推动IntelliJ IDEA的销售 kotlin是一门奔着钱而生的语言,我相信他一定会成为一门有 "钱途"的语言. JetBrains这家公司真的把程序员当 人,把程序员当用户来对待.从kotlin的迭代和发版节奏,可以看出来,他们迭代kotlin就像我们程序员迭代我们公司的app一样,很重视用户体验,很重视程序员的…
从零开始学Kotlin基础篇系列文章 与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼. 泛型类的基本使用 泛型,即 "参数化类型",将类型参数化,可以用在类,接口,方法上 class DemoClass<T>(date: T) {//date是任意类型的,避免强转 var todayDate=date } 创建类的实例时我们需要指定类型参数 //指定泛型date为String,三种创建方法 val demo1: DemoClass<…
最近收了很多程序员的简历,工作经验从1年到十几年不等.发现一个问题,工作经验范围差不多的程序员,简历看起来也差不多... 为啥程序员的简历如此统一?正好最近看到一个分享也分析了这个问题,结合我个人的一些经验,给大家分享几点. 简历千万不要这么写 1.没人在乎你 简历筛选只是模式匹配. 除了技术方向,程序员也受行业细分影响.不止hr,有时候我自己筛简历,一般也有些基础条件直接过滤一遍,比如学历.往期公司背景.熟悉的语言等等. 跳槽高峰期,一个岗位招聘发出去没几天,可能收到几千份简历,所以不要觉得对…
作为一名程序员经常会逛v2ex论坛,前几天逛着玩的时候忽然发现一篇文章,标题非常吸引眼球名字叫中年危机的终极解法,作为一个步入而立之年的老人,心里非常激动,到底是啥解决法呢,于是迅速点进去查看. 进去之后就看到两个视频连接 www.bilibili.com/video/av713- www.bilibili.com/bangumi/pla- 这是两个温暖的视频,第一个视频呢 名字叫 <北京深夜的漆黑角落,是中年男人仅剩的一点乐趣>第二个叫<中年健身房> 第一个视频讲的是北京的夜晚,…
我们首先来意淫一波 5G时代Android即将崛起,Android将与物联网强强联合,配合上5G信息高速传递的模式,再搭配物联网号召的"万物互通"的旗号,同时各位Android开发者不懈的努力,国家政策的大力扶持. 所以,Android开发将会在日后展现出一片欣欣向荣的景象,Android开发者的地位也会如同初升的太阳水涨船高,各位开发者苦恼的女朋友待定问题也会由国家统一分配,由贡献最有价值代码的程序员获得有限择偶权..... 什么?Android 要凉了? 说来好笑,我当年二十多岁的…
1.Jetpack架构组件从入门到精通 Android Jetpack - Navigation Android Jetpack - Data Binding Android Jetpack - ViewModel & LiveData Android Jetpack - Room Android Jetpack - Paging Android Jetpack - WorkManger Android Jetpack架构组件之Lifecycle Android Jetpack Compose…
程序员工作五年后一般怎样了? 五年程序员生涯对身体上的摧残就不说了,来讲讲一般会有怎样的状态吧! 优秀的一般是这样:有着明确的职业目标与规划,热爱技术,五年的工作沉淀,技术能力得到了飞速提升,每天依然激情满满,潜心专研学习技术,是身边同事羡慕的对象,是老板眼中的优秀员工,也是我眼中的技术大佬,薪资嘛自然也是水涨船高. 普通的一般是这样:也许跳槽了多次,薪资也在稳步的上涨中,但也多了些许空虚与迷茫,意识到自已只是茫茫程序员中普通的那一个,每天按部就班地工作.学习.生活,憧憬着有朝一日成为技术牛人.…
本人今年35了,已经干了14年程序员,是14年不是13年,因为我是专科毕业. 一直就是普普通通的程序员,特别纯的码农,从没做过管理岗位,并且很可能以后也是如此. 现在已经上有老下有小. 曾经在某著名互联网公司(现在有些过气)工作过很多年,现在在一家创业公司,也有很多年了. 之所以一直在一线写代码,我想根本原因可能是性格问题,我是一个特别内向的人,与世无争,不喜欢跟人打交道,不会聊天,有社交恐惧症,就喜欢对着电脑写代码,朋友评价我是"生活在自己的世界里". 另外,常年坐着写代码让我得了职…
蔡依林在演唱会上说过的一句话:"在乐坛摸爬滚打这么多年,遭遇了那么多质疑和嘲讽还能挺立到今天,然后想说40岁是个很棒的年纪......",让很多在职场打拼多年的老员工感慨颇深. 真希望我也能有这种状态!但普通人人到中年真的太难了-- 最近几年,在春风得意的校招"职场新力量"背后,职场老员工却越来越多地陷入怀疑人生时刻. 应届生薪资待遇越来越好了:华为拿出200万年薪招募"天才少年",海归毕业生在北上广深等各地享受优惠政策,字节.阿里.腾讯等技术岗…
概述 感觉毕业后时间过得真快啊,从16年6月本科毕业入职了一家不大的公司,到现在快五年了,前段时间金三银四想着找一个新的工作,前前后后花了一个多月的时间复习以及面试,前几天拿到了腾讯的offer,想把面试经验分享给大家,祝想找工作的同学都能去自己心仪的公司! 腾讯一面 1.mmap + native 日志优化? 2.广播和 EventBus 的区别? 3.常用设计模式你了解哪些? 4.跨进程通信有哪些? 5.简单讲讲 binder 驱动吧? 6.跨进程传递大内存数据如何做? 7.说说 Concu…
前言 2019年底,公司出现危机,开始"优化",本组一个小兄弟被"优化",于是我也着手开始做准备,将来若轮到我被"优化",出去面试时也好打个有准备的仗. 这里我可以交代一下,我从四月份开始准备面试,复习知识点,金九银十开始去面试到拿到3个大厂offer(京东.字节跳动.滴滴),大概是半年时间,时间跨度比较的长,大概参与了二三十家公司的面试,因为基本上是骑驴找马,并不急,我只想拿到大厂的offer. 准备 主要是明确自己想要加入的公司,并开始做技术…
作者:Antonio Leiva 时间:Feb 8, 2017 原文链接:https://antonioleiva.com/generic-functions-kotlin/ Kotlin的一些特性组合起来与泛型混合使用创建函数可以极大的简化你的编码,且保证它的可读性. 在Kotlin库中,有几个函数非常实用,一旦你掌握它们的概念使用起来就非常容易. with函数 尽管Kotlin标准库中有几个相似的函数,但是,我计划聚焦在with的各个部分上. 这个函数允许做什么?用了它,我们可以用一变量的代…
kotlin 中函数可以定义为局部函数,成员函数以及扩展函数 局部函数:就是嵌套在函数内的函数 成员函数就是定义在类或者对象之内的函数 泛型函数就是函数可以带有泛型参数,可通过尖括号来指定…
泛型的声明 与Java不同的是,Kotlin要求类型实参要么被显示的说明,要么能被编译器推导出来.因为Java在1.5版本才引入泛型,所以为了兼容过去的版本,可以不直接声明List类型的变量,而不说明类型. //下面两种是等价的 val readers = arrayListOf<String>() val readers:ArrayList<String>=arrayListOf() 泛型函数 // 第一处是类型形参声明,第二三处分别是接收者和返回类型使用了类型形参 fun &l…
引子 相信总是有很多同学,总是在抱怨泛型无论怎么学习,都只是停留在一个简单使用的水平,所以一直为此而备受苦恼. Kotlin 作为一门能和 Java 相互调用的语言,自然也支持泛型,不过 Kotlin 的新关键字 in 和 out 却总能绕晕一部分人,归根结底,还是因为 Java 的泛型基本功没有足够扎实. 很多同学总是会产生这些疑问: Kotlin 泛型和 Java 泛型到底有何区别? Java 泛型存在的意义到底是什么? Java 的类型擦除到底是指什么? Java 泛型的上界.下界.通配符…
春节后,又重新“开张”.各位高手请继续支持.谢谢! 原文标题:Kotlin recipes for Android (I): OnGlobalLayoutListener 原文链接:http://antonioleiva.com/kotlin-ongloballayoutlistener/ 原文作者:Antonio Leiva(http://antonioleiva.com/about/) 原文发布:2016-03-16 ­ Android的Kotlin秘方(I):OnGlobalLayoutL…
网页链接:https://kotlinlang.org/docs/reference/basic-types.html 2.   基本概念 2.1.  基本类型 从可以在任何变量处理调用成员函数和属性角度来说,在Kotlin开发语言中,一切都是对象.有些类型是内嵌的,它们的实现进行过优化,用户看到的仍是原始类.在这节中,我们说明大部分这些类型:数字,字符,布尔和数组. 2.1.1.   数字 Kotlin开发语言处理数组的方法类似Java开发语言,但是也有差别.例如,没有隐含的数字扩宽的转换,并…