黑马程序员技术交流社区

标题: 为什么我自定义注解出现空指针异常,求大神~~求大神~~ [打印本页]

作者: 小黑子    时间: 2014-10-15 06:57
标题: 为什么我自定义注解出现空指针异常,求大神~~求大神~~
本帖最后由 小黑子 于 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());   空指针异常。
我就搞不懂了,明明和张老师写的一样啊!这是为什么???


作者: HM2014nuli    时间: 2014-10-15 07:13
本帖最后由 HM2014nuli 于 2014-10-15 07:16 编辑

为什么我运行却没有错误,看到错误了在这Annotation.class你少写了个Test,应该是AnnotationTest.class.
作者: 小黑子    时间: 2014-10-15 07:46
HM2014nuli 发表于 2014-10-15 07:13
为什么我运行却没有错误,看到错误了在这Annotation.class你少写了个Test,应该是AnnotationTest.class. ...

哪里?哪行代码?
作者: 小黑子    时间: 2014-10-15 07:48
HM2014nuli 发表于 2014-10-15 07:13
为什么我运行却没有错误,看到错误了在这Annotation.class你少写了个Test,应该是AnnotationTest.class. ...

找到了,谢谢哈。




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