作者回复: 是的,这也取决于团队的默契程度。
作者回复: 后面的长动图我会改成视频形式哈。至于……这节课的动图,就辛苦你多看几遍啦。
作者回复: 好的,感谢你的建议,后续课程中比较长的动图我都做成视频了,随时可以暂停的。
作者回复: 在工作中,有时候确实会遇到String类型的需求。要解决这个问题的话,我们只需要将JSON解析相关逻辑抽离出去,然后将逻辑交给业务层去实现即可。
作者回复: 别怕,适应了就好。另外,等到了源码篇,我也会集中分析一波Kotlin的高阶函数的原理和意义,请留意哈。
作者回复: 其实很好理解: return@newProxyInstance代表返回Lambda;而直接的return,代表了返回create()这个函数。 参考链接:https://kotlinlang.org/docs/lambdas.html#underscore-for-unused-variables
作者回复: 如果你将上面的代码进行反编译就会发现问题了。其中主要的原因还是在于Kotlin的泛型是伪泛型。这里我们调用asT的时候,其实它只是做了一个object强转,所以并不会出问题。如果你将代码改成这样,就肯定会在运行时出现崩溃了: ``` fun <T> Int.toType():T{ return (this as T) } class Animal{ // 变化在这里 fun getName() = "Animal" } fun main() { println(100.toType<Animal>().getName()) } ```
作者回复: 其实还是靠练习,熟能生巧。我会在工作里尽量用上来,而在工作之余,我也会写点其他练手的代码,也会刷点算法题之类的。
作者回复: 改进的方向是:我们应该尽可能消灭数据类的可空性(加餐四有提到)。具体来说,应该使用非空类型,具体怎么做,我会在后面的课程里提到哈。
作者回复: 确实,所以要多练习,多适应。