java - 參數(shù)列表上的注解可以同時有多個嗎?
問題描述
我有一個方法,在參數(shù)列表上有一個參數(shù)(接受一個顏色類型),數(shù)據(jù)類型是int型
但是我的方法內(nèi)部,這個int型根據(jù)傳入的一個boolean類型做了判斷,所以它
* 既可以是`@ColorRes` (顏色代碼的資源ID,int類型) * 也可以是`@ColorInt` (顏色代碼在Color類中的成員變量,int類型)
但是方法參數(shù)上又不能寫(@ColorRes|@ColorInt) 同樣的參數(shù)列表也不能用方法重載來搞定。所以就想問一下有沒有辦法可以讓兩個注解同時生效的?
問題解答
回答1:多注解代碼如下:
public void setColor(@ColorInt @ColorRes int color){ // TODO }
這么寫是有問題的. 對IDE來說, 這是有歧義的, 你又要是Color色值, 又要是Color資源引用, 會有這樣的Int值嗎?本身這類注解只是IDE輔助用的, 即編譯時就發(fā)現(xiàn)問題, 打開Inspections可以禁用這類Lint, 如下圖:
為什么不參考Android源碼的方式來, 而非得定義一個讓調(diào)用者抓狂的方法, 源碼如下:
public void setBackgroundColor(@ColorInt int color) { ...}public void setBackgroundResource(@DrawableRes int resid) { ...}
相關(guān)文章:
1. macos - mac下docker如何設(shè)置代理2. redis與mysql一致性問題3. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?4. css - 求推薦適用于vue2的框架 像bootstrap這種類型的5. android - coordinatorLayout嵌套recyclerview6. Laravel5.4電商實戰(zhàn)視頻教程資料7. 想練支付寶對接和微信支付對接開發(fā)(Java),好像個人不可以,怎么弄個企業(yè)的8. Mac環(huán)境下QT編譯MySQL驅(qū)動屢次失?。咳绾??9. javascript - 微信支付:H5調(diào)起支付API,直接說支付失敗10. javascript - [多圖預(yù)警]reactjs點擊某表格編輯內(nèi)容,跳轉(zhuǎn)傳值this.context.router.params.id時id報錯未定義
