文章詳情頁
java - 參數列表上的注解可以同時有多個嗎?
瀏覽:100日期: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 - 用rem寫的頁面,安卓手機顯示文字是正常的,蘋果顯示的文字是特別小的是為什么呢2. dockerfile - 為什么docker容器啟動不了?3. 請教各位大佬,瀏覽器點 提交實例為什么沒有反應4. macos - mac下docker如何設置代理5. javascript - webapp業務流程基本一致,多套主題(樣式基本不一樣,交互稍有偏差)管理,并且有不斷有新增主題,該如何設計組件化架構?6. mysql - AttributeError: ’module’ object has no attribute ’MatchType’7. apache - 本地搭建wordpress權限問題8. javascript - web網頁版app返回上一頁按鈕在ios設備失效怎么辦?安卓上可以,代碼如下,請大神幫助,萬分感謝。9. 新手 - Python 爬蟲 問題 求助10. javascript - JS設置Video視頻對象的currentTime時出現了問題,IE,Edge,火狐,都可以設置,反而chrom卻...
排行榜
