- 类型安全:Bundle的K-V不能在编译期保证类型
- 接口繁琐:启动Activity 时参数和结果传递都依赖Intent
onActivityResult为什么麻烦
- 代码处理逻辑分离,容易出现遗漏和不一致的问题
setResult()
写法不够直观,结果数据没有类型安全保障- 结果种类较多时,onActivityResult就会逐渐臃肿难以维护
为什么Activity的参数存在类型安全问题
intent.putExtra()
时和getIntent.getXxxExtra()
时需要人工去保证类型安全
如何实现类型安全
注解处理器生成Builder
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class UserActivity extends Activity{
String name;
int age;
String title;
String company;
}
UserActivityBuilder.builder(age, name)
.title(title)
.company(company);通过注解处理器生成注入逻辑
注解处理器程序的开发注意事项
- 注意注解标注的类的继承关系
- 注意注解标注的类为内部类的情况
- 注意kotlin与java的类型映射的问题
- 把握好代码生成和直接依赖的边界