data class这个大坑

来源:4-10 数据类(allOpen,noArg插件,再见,javaBean)

qq_lee_3

2019-06-13

为啥要放在runtime阶段,这样在source阶段就得反射来用
想问下为啥不采用类似butterknife的那种方式,在Source期就直接生成
是会增加很多代码量吗

写回答

1回答

bennyhuo

2019-06-13

同学是说生成默认无参构造器吗?是在编译期完成的,直接插入在字节码里面的。跟butterknife是同一时期的,用编译器插件省了编译这个步骤而且方便后续支持kotlin跨平台,注解处理器是java的东西。

默认无参构造器不应该在代码当中直接调用,因为那样的话会破坏kotlin数据类的属性类型。想象一下默认无参构造器要如何初始化不可空的属性。

0
0

Android首选开发语言Kotlin入门与进阶

Google I/O大会钦定Android一级开发语言,现在不学,等待何时

3122 学习 · 387 问题

查看课程