• 白乾涛
    2022-02-19
    勉强能看明白,但这代码谁能手写的出来呀? 就算写出来了,谁保证没 bug?谁能保证别人能看明白?谁能保证后续能维护?

    作者回复: 是的,这也取决于团队的默契程度。

    
    7
  • $Kotlin
    2022-01-24
    动图看起来不太方便,不能暂停,而且这个动图好长。

    作者回复: 后面的长动图我会改成视频形式哈。至于……这节课的动图,就辛苦你多看几遍啦。

    
    3
  • syz
    2022-03-09
    动态代理的那张动图,播放中不能暂停,要懂这样过一遍没毛病。建议将每一次停顿变成带序号的标注,贴代码上来感觉会好点。

    作者回复: 好的,感谢你的建议,后续课程中比较长的动图我都做成视频了,随时可以暂停的。

    
    2
  • 面无表情的生鱼片
    2022-02-12
    请教老师,如果 method.genericType 是 kotlin 的 Basic Type 的话(例如:String、Int),要怎么做兼容比较好呢?

    作者回复: 在工作中,有时候确实会遇到String类型的需求。要解决这个问题的话,我们只需要将JSON解析相关逻辑抽离出去,然后将逻辑交给业务层去实现即可。

    
    2
  • 木易杨
    2022-01-24
    Kotlin这语法越写越变态。Java啰嗦吧,起码能看懂,没那么多语法题

    作者回复: 别怕,适应了就好。另外,等到了源码篇,我也会集中分析一波Kotlin的高阶函数的原理和意义,请留意哈。

    
    2
  • 阿康
    2022-01-24
    Lambda 表达式当中的返回语法 能讲下吗?或者给个相关的博客连接

    作者回复: 其实很好理解: return@newProxyInstance代表返回Lambda;而直接的return,代表了返回create()这个函数。 参考链接:https://kotlinlang.org/docs/lambdas.html#underscore-for-unused-variables

    共 3 条评论
    2
  • 河山
    2022-03-09
    请问老师 像如下代码 fun <T> Int.toType():T{ return (this as T) } class Animal{} fun main() { println(100.toType<Animal>()) } 这个不应该有类型转换异常吗 为什么我运行没有报异常 而且会输出100 但是debug模式 去运行100.toType<Animal>() 这个表达式 却的确会提示类型转换异常 老师 为什么运行没问题啊

    作者回复: 如果你将上面的代码进行反编译就会发现问题了。其中主要的原因还是在于Kotlin的泛型是伪泛型。这里我们调用asT的时候,其实它只是做了一个object强转,所以并不会出问题。如果你将代码改成这样,就肯定会在运行时出现崩溃了: ``` fun <T> Int.toType():T{ return (this as T) } class Animal{ // 变化在这里 fun getName() = "Animal" } fun main() { println(100.toType<Animal>().getName()) } ```

    
    1
  • PoPlus
    2022-02-27
    操作符太多了,日常写业务不常用的话很快就忘了。不知道老师是如何知道这么多没听过的操作符(filterIsInstance、fold)🥲。

    作者回复: 其实还是靠练习,熟能生巧。我会在工作里尽量用上来,而在工作之余,我也会写点其他练手的代码,也会刷点算法题之类的。

    共 3 条评论
    
  • 山河入梦
    2022-02-16
    // 这种写法是有问题的,但这节课我们先不管。 我想问下老师,这种写法的问题在哪,因为我一直这样写来着,从昨天看了文章,就一直纠结着

    作者回复: 改进的方向是:我们应该尽可能消灭数据类的可空性(加餐四有提到)。具体来说,应该使用非空类型,具体怎么做,我会在后面的课程里提到哈。

    
    
  • jim
    2022-02-15
    kotlin确实很优雅,有时候写着写着看不懂了!

    作者回复: 确实,所以要多练习,多适应。

    
    