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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小黑子 于 2014-10-15 07:49 编辑

自定义一个注解
  1. package cn.itheima.day2;

  2. import java.lang.annotation.ElementType;
  3. import java.lang.annotation.Retention;
  4. import java.lang.annotation.RetentionPolicy;
  5. import java.lang.annotation.Target;

  6. @Retention(RetentionPolicy.RUNTIME)
  7. @Target({ElementType.TYPE,ElementType.METHOD})
  8. public @interface ItcastAnnotation {
  9.         String color();
  10. }
复制代码

使用这个注解,并给属性color赋值"red",然后获取color的值打印
  1. package cn.itheima.day2;

  2. import java.lang.annotation.Annotation;

  3. @ItcastAnnotation(color="red")
  4. public class AnnotationTest {
  5.         
  6.         public static void main(String[] args) {
  7.                 if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){
  8.                         ItcastAnnotation annotation = (ItcastAnnotation) Annotation.class.getAnnotation(ItcastAnnotation.class);
  9.                         System.out.println(annotation.color());
  10.                 }
  11.         }
  12. }
复制代码

结果运行时报错:说是
System.out.println(annotation.color());   空指针异常。
我就搞不懂了,明明和张老师写的一样啊!这是为什么???

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 淡定

查看全部评分

3 个回复

倒序浏览
本帖最后由 HM2014nuli 于 2014-10-15 07:16 编辑

为什么我运行却没有错误,看到错误了在这Annotation.class你少写了个Test,应该是AnnotationTest.class.

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
HM2014nuli 发表于 2014-10-15 07:13
为什么我运行却没有错误,看到错误了在这Annotation.class你少写了个Test,应该是AnnotationTest.class. ...

哪里?哪行代码?
回复 使用道具 举报
HM2014nuli 发表于 2014-10-15 07:13
为什么我运行却没有错误,看到错误了在这Annotation.class你少写了个Test,应该是AnnotationTest.class. ...

找到了,谢谢哈。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马