Rumah  >  Soal Jawab  >  teks badan

java - 参数列表上的注解可以同时有多个吗?

我有一个方法,在参数列表上有一个参数(接受一个颜色类型),数据类型是int型

但是我的方法内部,这个int型根据传入的一个boolean类型做了判断,
所以它

 * 既可以是`@ColorRes` (颜色代码的资源ID,int类型)
 * 也可以是`@ColorInt`  (颜色代码在Color类中的成员变量,int类型)
 

但是方法参数上又不能写(@ColorRes|@ColorInt) 同样的参数列表也不能用方法重载来搞定。
所以就想问一下有没有办法可以让两个注解同时生效的?

PHPzPHPz2743 hari yang lalu661

membalas semua(1)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 10:55:55

    Kod untuk berbilang anotasi adalah seperti berikut:

    public void setColor(@ColorInt @ColorRes int color){
        // TODO 
    }
    

    Terdapat masalah dengan menulis dengan cara ini Untuk IDE, ini adalah samar-samar Jika anda mahukan nilai Warna dan rujukan sumber Warna, adakah terdapat nilai Int seperti itu? digunakan untuk bantuan IDE, iaitu, jika masalah ditemui semasa penyusunan, anda boleh melumpuhkan jenis Lint ini dengan membuka
    , seperti yang ditunjukkan di bawah: Inspections

    Mengapa tidak merujuk kepada kod sumber Android dan bukannya menentukan kaedah yang membuat pemanggil gila Kod sumber adalah seperti berikut:

    public void setBackgroundColor(@ColorInt int color) {
        ...
    }
    
    public void setBackgroundResource(@DrawableRes int resid) {
        ...
    }
    

    balas
    0
  • Batalbalas