黑马程序员技术交流社区

标题: 关于注解类中属性的小问题 [打印本页]

作者: 吴亨    时间: 2012-2-9 16:29
标题: 关于注解类中属性的小问题
  public @interface Annotation {
       String color();  //明明是属性,为何要写成方法的形式。是硬性规定吗?
}
作者: 杜明辉    时间: 2012-2-9 16:38
注解(Annotation) 为我们在代码中天界信息提供了一种形式化的方法,是我们可以在稍后

某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据)。

注解的语法比较简单,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种

注解,定义在java.lang包中。

      @Override 表示当前方法是覆盖父类的方法。

      @Deprecated 表示当前元素是不赞成使用的。

      @SuppressWarnings 表示关闭一些不当的编译器警告信息。

public @interface Annotation
应该是定义了一个接口,这个接口里定义了一个方法。
作者: 吴亨    时间: 2012-2-9 20:13
杜明辉 发表于 2012-2-9 16:38
注解(Annotation) 为我们在代码中天界信息提供了一种形式化的方法,是我们可以在稍后

某个时刻方便地使 ...

public @interface Annotation {
       String color;  //为什么不这样写呢?作为一个成员变量不也可以引用吗?
}
作者: 成果    时间: 2012-2-9 23:38
String color这样是一个成员变量  而String color()则是一个方法。方法名为color 返回类型为String
作者: 吴亨    时间: 2012-2-10 09:39
寻找幸福的13狼 发表于 2012-2-9 23:38
String color这样是一个成员变量  而String color()则是一个方法。方法名为color 返回类型为String ...

对啊,把color定义成成员变量不更简单吗?直接Annotation.color不就可以引用了吗?
作者: 李泽霖    时间: 2012-2-10 10:58
使用@interface注解定义Annotation型态时,实际上是自动继承了java.lang.annotation.Annotation接口有编译程序自动完成其他产生的细节在定义Annotation型态时,不能继承其他的Annotation型态或是接口,当自定义一个接口,并且让该接口继承自Annotation,那么我们所定义的接口依然还是接口而不是注解;可以与enum类比。我认为可以把定义的String color();看做注解参数类型也可看做被描述类或方法的属性值,因为使用时是这样的@annotation(color=“blue”);
作者: 吴亨    时间: 2012-2-10 19:45
李泽霖 发表于 2012-2-10 10:58
使用@interface注解定义Annotation型态时,实际上是自动继承了java.lang.annotation.Annotation接口有编译 ...

兄弟,有点绕,小弟没读太明白。
作者: 吴亨    时间: 2012-2-10 19:46
李泽霖 发表于 2012-2-10 10:58
使用@interface注解定义Annotation型态时,实际上是自动继承了java.lang.annotation.Annotation接口有编译 ...

把color定义成成员变量不更简单吗?直接Annotation.color不就可以引用了吗?




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