Kotlin
文章平均质量分 57
我为摸鱼代盐
时间会给出答案
展开
-
kotlin增加静态扩展函数
比方说要为String增加一个cmpByLength方法,并且希望是静态的,可以创建一个StringEx.kt文件,里面这么写:fun String.Companion.cmpByLength(a: String,b: String): Boolean { return a.length>b.length}然后就可以在任意地方调用String.cmpByLength方法了。为什么能这样做?String源码:public class String : Comparable<原创 2021-11-15 19:55:04 · 2847 阅读 · 0 评论 -
《第一行代码》第三版p548~549ViewModel数据封装详细解析
在第一行代码第三版LiveData最后一块中读到的处理数据封装的方法,之前读过一遍没搞懂,现在思路清晰了,感觉能理解了,以下是个人见解首先,这段代码val counter: LiveData<Int> get() = _counter是看懂这一整个代码的第一个关键,书中没有提到kotlin中getter和setter的概念,因为kotlin为变量提供了默认实现,而如果需要覆盖掉原来的getter,那么就需要进行手动实现,也就是在变量下方写上get() = ...,请注意,原创 2021-10-03 17:22:56 · 219 阅读 · 0 评论 -
关于kotlin泛型中的协变和逆变的个人理解
2021.8.26带有主观性,理性观看,客观评价WARNING:本文章适合了解一点协变和逆变但又不完全懂的人看一看泛型协变:如果定义了一个MyClass< T >的泛型类,其中A是B的子类型,同时MyClass< A >又是MyClass< B >的子类型,那么就可以称MyClass在T这个泛型上是协变的错误写法:open class Dad()class Son(): Dad()class Generics<out T> { pri原创 2021-08-26 19:56:41 · 149 阅读 · 0 评论