多注解代码如下:
public void setColor(@ColorInt @ColorRes int color){
// TODO
}
这么写是有问题的. 对IDE来说, 这是有歧义的, 你又要是Color色值, 又要是Color资源引用, 会有这样的Int值吗?
本身这类注解只是IDE辅助用的, 即编译时就发现问题, 打开Inspections
可以禁用这类Lint, 如下图:
为什么不参考Android源码的方式来, 而非得定义一个让调用者抓狂的方法, 源码如下:
public void setBackgroundColor(@ColorInt int color) {
...
}
public void setBackgroundResource(@DrawableRes int resid) {
...
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…