ButterKnife编译期注解,欲罢不能的背后写手
2019-05-14 本文已影响0人
Ahwind
黄油刀是控件注入框架,可以帮助安卓开发者省去初始化控件的重复性工作,简单快捷的初始化布局文件中的控件,极大的提升开发效率。
https://github.com/JakeWharton/butterknife
ButterKnife的优势
强大的View绑定和Click事件处理能力,简化代码,提升开发效率
方便的处理Adapter里的ViewHolder绑定问题
运行时不会影响APP效率,使用配置方便
代码清晰,可读性强
和IoC结构的区别
共同特点:同样实现了解耦的目的
核心技术:运行时通过反射技术(reflect) VS 注解处理器技术APT
开发使用:两者几乎一样,傻傻分不清楚
代码难易:Ioc编程更具挑战性
程序稳定:两者暂未发现致命的缺陷
两者缺陷:reflect会消耗一定性能,APT会增加apk大小
开发追求:更偏向编译期的APT技术
getEnclosedElements() 返回该元素直接包含的子元素
getEnclosingElement() 返回包含该element的父element,与上一个方法相反
getKind() 返回element的类型,判断是哪种element
getModifiers 获取修饰关键字,如public static final等关键字
getSimpleName() 获取名字,不带包名
getQualifiedName() 获取全名,如果是类的话,包含完整的包名路径
getParameters() 获取方法的参数元素,每个元素是一个VariableElement
getReturnType() 获取方法元素的返回值
getConstantValue() 如果属性变量被final修饰,则可以使用该方法获取它的值