java - 參數(shù)列表上的注解可以同時(shí)有多個(gè)嗎?
問題描述
我有一個(gè)方法,在參數(shù)列表上有一個(gè)參數(shù)(接受一個(gè)顏色類型),數(shù)據(jù)類型是int型
但是我的方法內(nèi)部,這個(gè)int型根據(jù)傳入的一個(gè)boolean類型做了判斷,所以它
* 既可以是`@ColorRes` (顏色代碼的資源ID,int類型) * 也可以是`@ColorInt` (顏色代碼在Color類中的成員變量,int類型)
但是方法參數(shù)上又不能寫(@ColorRes|@ColorInt) 同樣的參數(shù)列表也不能用方法重載來搞定。所以就想問一下有沒有辦法可以讓兩個(gè)注解同時(shí)生效的?
問題解答
回答1:多注解代碼如下:
public void setColor(@ColorInt @ColorRes int color){ // TODO }
這么寫是有問題的. 對(duì)IDE來說, 這是有歧義的, 你又要是Color色值, 又要是Color資源引用, 會(huì)有這樣的Int值嗎?本身這類注解只是IDE輔助用的, 即編譯時(shí)就發(fā)現(xiàn)問題, 打開Inspections可以禁用這類Lint, 如下圖:

為什么不參考Android源碼的方式來, 而非得定義一個(gè)讓調(diào)用者抓狂的方法, 源碼如下:
public void setBackgroundColor(@ColorInt int color) { ...}public void setBackgroundResource(@DrawableRes int resid) { ...}
相關(guān)文章:
1. boot2docker無法啟動(dòng)2. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””3. docker-compose中volumes的問題4. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.5. java - SSH框架中寫分頁時(shí)service層中不能注入分頁類6. nignx - docker內(nèi)nginx 80端口被占用7. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?8. dockerfile - 為什么docker容器啟動(dòng)不了?9. docker容器呢SSH為什么連不通呢?10. 關(guān)于docker下的nginx壓力測(cè)試

網(wǎng)公網(wǎng)安備