文章详情页
java - 参数列表上的注解可以同时有多个吗?
浏览:28日期:2024-01-05 09:12:29
问题描述
我有一个方法,在参数列表上有一个参数(接受一个颜色类型),数据类型是int型
但是我的方法内部,这个int型根据传入的一个boolean类型做了判断,所以它
* 既可以是`@ColorRes` (颜色代码的资源ID,int类型) * 也可以是`@ColorInt` (颜色代码在Color类中的成员变量,int类型)
但是方法参数上又不能写(@ColorRes|@ColorInt) 同样的参数列表也不能用方法重载来搞定。所以就想问一下有没有办法可以让两个注解同时生效的?
问题解答
回答1:多注解代码如下:
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) { ...}
标签:
java
相关文章:
1. javascript - 如何在windows下搭建react开发环境上,实现网站的react版本2. html5 - 移动端通过拖拽实现两个元素的位置互换3. javascript - 读取页面源码,页面中所有的换行都被当成<br/>读取出来 了,,求解应该怎么让它被正确的解析4. javascript - 呈现引擎是什么?5. javascript - 一个字符串转换成数字,例子就是a="2,322.222",b=’1,211.21’,如何在angualr中执行相减6. windows - python pymysql 返回值是int类型7. mysql sql where id in(25,12,87) 结果集如何用按照 25 12 87排序?8. PHP类属性声明?9. 利用百度地图API定位及附件商家信息服务10. javascript - easyui textbox绑定onchange事件不能获取最新的文本框的值
排行榜