A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© code_geass 中级黑马   /  2013-9-24 20:25  /  843 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.lang.annotation.Annotation;

  2. @ItcastAnnotation(color="bule",value=3)
  3. public class AnnotationTest {
  4.         public static void main(String[] args) {
  5.                 if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){
  6.                         ItcastAnnotation  anno=(ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);
  7.                         System.out.println(anno);
  8.                         System.out.println(anno.color());
  9.                         //System.out.println(anno.lamp().nextLamp());
  10.                         System.out.println(anno.annotation().name());
  11.                          
  12.                 }
  13.         }
  14. }
  15. /*打印结果:
  16. on
  17. on
  18. on
  19. @javaenhance.cn.day1.ItcastAnnotation(annotation=@javaenhance.cn.day1.meAnnotation(name=XXX), lamp=RED, color=bule, value=[3])
  20. bule
  21. XXX
  22. */

复制代码
  1. import java.lang.annotation.ElementType;
  2. import java.lang.annotation.Retention;
  3. import java.lang.annotation.RetentionPolicy;
  4. import java.lang.annotation.Target;

  5. @Retention(RetentionPolicy.RUNTIME)//生命周期
  6. @Target({ElementType.METHOD,ElementType.TYPE})//可以放置的位置。
  7. public @interface ItcastAnnotation {
  8.         String color();
  9.         int[]  value();
  10.         //LampText.Lump lamp() default LampText.Lump.RED;
  11.         meAnnotation annotation() default @meAnnotation(name="XXX");//这里只有一个属性,但是为什么单写属性值会报错?
  12. }
复制代码
  1. public @interface meAnnotation {
  2.         String name();
  3. }
复制代码
2个问题。打印结果的3个on出自哪,单写属性值为什么报错?

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马