黑马程序员技术交流社区

标题: 关于注解的问题?? [打印本页]

作者: jingzhouheima    时间: 2013-8-11 11:27
标题: 关于注解的问题??
本帖最后由 jingzhouheima 于 2013-8-14 07:45 编辑

先自定定义了一个注解类 AnnoType
public @interface AnnoType
{
     String country() default "Astralia" ;
}
然后又定义了一个注解类 ItcastAnnotation 去调用AnnoType
public @interface ItcastAnnotation
{
     AnnoType annoType() default @AnnoType(country = "CHINA");
}

问题:我在注解类 AnnoType中只定义了一个属性,为什么我在注解类 ItcastAnnotation 去调用AnnoType的时候,
对AnnoType的属性设置必须通过(country = "CHINA"),而不是("CHINA")呢?如果是后者,则会爆出错误,如下图:

000.png (3.04 KB, 下载次数: 14)

问题代码

问题代码

作者: 清心玉质    时间: 2013-8-11 12:22
不是只有一个属性的时候不用写属性名称和“=”,而是只有value属性需要设值的时候,可以不写“value=”。所以,你可以再定义一个value属性,在另一个注解里调用试试。我试过的代码如下:
package Annotation;

public @interface AnnoType
{
    String country() default "Astralia" ;
String value();
}

public @interface ItcastAnnotation
{
     AnnoType annoType() default @AnnoType("abc");
     
}

作者: 茶念小手    时间: 2013-8-11 22:11
只有属性名是value的时候才不用写属性名直接赋值啊~~你把那个属性名改成value就可以了
  1. public @interface AnnoType
  2. {
  3. String value() default "Astralia" ;
  4. }

  5. public @interface ItcastAnnotation
  6. {
  7.      AnnoType annoType() default @AnnoType("abc");
  8.      
  9. }
复制代码

作者: 以防万一    时间: 2013-8-13 22:19
亲,如问题已解决请将分类的未解决改为已解决。

以后的问题贴也要及时更改分类哦~


保持队形,谢谢合作
作者: jingzhouheima    时间: 2013-8-14 07:43
杨璐敏 发表于 2013-8-13 22:19
亲,如问题已解决请将分类的未解决改为已解决。

以后的问题贴也要及时更改分类哦~

谢谢提醒。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2