社区
Android
帖子详情
BindView fields must not be private or static,在源码中的位置?
cdcdec
2018-06-21 07:33:02
因为使用ButterKnife时,使用private修饰了fields,所以报错了。想在ButterKnife框架源码中找到"@BindView fields must not be private or static",却没有找到?这句不在ButterKnife源码里面吗?是编译器给出的吗?
...全文
21412
6
打赏
收藏
BindView fields must not be private or static,在源码中的位置?
因为使用ButterKnife时,使用private修饰了fields,所以报错了。想在ButterKnife框架源码中找到"@BindView fields must not be private or static",却没有找到?这句不在ButterKnife源码里面吗?是编译器给出的吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
祝愿大家都不脱发
2020-09-02
打赏
举报
回复
人家提示了不要用private或者static,那咱们又要用人家的东西,就听人家的就不用private了呗
WCX_1234
2020-08-27
打赏
举报
回复
你在放屁 好像不是的公司的和黑格尔的
王能
2019-02-25
打赏
举报
回复
黄油刀不能使用private修饰符,其他的public、Default、protected都行,黄油刀的原理就是同目录生成一个类,所以不能用private修饰黄油刀注解的东西
snail201211
2019-02-22
打赏
举报
回复
使用public修饰符即可~
snail201211
2019-02-22
打赏
举报
回复
请参考源码:
private static <T extends AccessibleObject & Member> void validateMember(T object) {
int modifiers = object.getModifiers();
if ((modifiers & (PRIVATE | STATIC)) != 0) {
throw new IllegalStateException(object.getDeclaringClass().getName()
+ "."
+ object.getName()
+ " must not be private or static");
}
if ((modifiers & PUBLIC) == 0) {
object.setAccessible(true);
}
}
r00_a2lBUR
2018-09-02
打赏
举报
回复
可以考虑用public
Android ButterKnife
源码
解析
1.ButterKnife是使用APT(AnnotationProcessor注解处理器,Javac的工具)进行注解,//todo不是使用运行时注解,所以性能没有影响,但对编译器有点时间成本的影响 2.注解分为 普通注解 @Override等 元注解 注解其它注解的注解 1.@Document 应该被Java记录 2.@Target 注解的使用范围 3.@Retention 描述注解的生命周期 4...
浅析ButterKnife的实现 (三) ——
Bind
View
相关文章: 如何实现ButterKnife (一) —— 搭建开发框架 如何实现ButterKnife (二) ——
Bind
Resource 这里开始讲解最常用的绑定
View
的注解了,这个会比资源绑定注解复杂一点,不过大体流程都是相似的。 @
Bind
定义个用来注入
View
资源的注解: /** *
View
绑定 */ @Retention(RetentionPolic
编译时注解Butterknife
源码
解析之深入篇(雷惊风)
1.概述。 上篇文章我对Butterknife实现做了一些基础的说明,本篇文章我将向大家详细分析@
Bind
View
、@OnClick解析流程、生成
Bind
ingSet对应Java文件流程及我们调用ButterKnife.
bind
(this)后ButterKnife与生成Java文件的建立连接过程。 2.@
Bind
View
解析流程。 这篇文章将接着上篇文章的findAndParseTarget
分分钟带你读懂-ButterKnife-的
源码
} }); target.footer = Utils.findRequired
View
AsType(source, R.id.footer, “
field
‘footer’”, Text
View
.class); target.header
View
s = Utils.listOf( Utils.findRequired
View
(source, R.id.title, “
field
‘header
View
s’”), Utils.findRequired
View
(source, R.id.subtitle, “
简谈
源码
-ButterKnife(v10.2.3)
ButterKnife官网 用法示例 package com.example.butterknife.library; public class SimpleActivity extends Activity { @
Bind
View
(R.id.hello) Button hello; @
Bind
View
(R.id.titleTv) Text
View
titleTv; @OnClick(R.id.hello) void sayHello() { Toast.
Android
80,472
社区成员
91,384
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章