我刚接触到java的annotation这一部分,有预先定义好的@override,@deprectated和@suppressWarnings, 感觉这3个都有判断能力,可以在适当的时候,自动提示用户。 
而自定义的annotation我就糊涂了:自定义一个新的annotation好像挺容易的,但感觉怎么都是些说明文字,然后就把这个新的annotation放到某个类的方法等位置,但也不会自动出现提示什么的。请问我们自定义annotation的目的是否就是要加一些说明文字,而且是不含有自动判断的?比如说@override,就可以自动判断是否出错,如出错就会报错,而自定义的annotation并不是用来干这个的?

解决方案 »

  1.   

    你自己写的annotation当然不会被JDT支持了
      

  2.   

    支持一下,java 的注解功能!
      

  3.   

    编辑工具当然不会理解你自己定义的Annotation有什么用,所以肯定是忽略的
    一般来说你自定义Annotation更多是用于在运行时获取并进行处理,如EJB3、Hibernate中的Annotation一样
      

  4.   

    答:注解的主要目的是由你的运行环境(如JAVA)或你的自动软件工具(称为:注解处理器)来处理的。JAVA运行环境本身预定义了三个标准注解与四个元注解,可直接使用。你自己自定义的注解,由你自己开发的软件工具(你自己的注解处理器)进行自动处理。因此:程序员更多的是使用自动处理软件所提供的注解[这些注解正是通过注解的自定义机制,自己定义与自己处理的](数量众多-如EJB3.0的注解等),作为强大的开发武器。
    因此:在定义自己的注解时,通常你要开发这些自定义注解相应的处理器的[即使是最简单的通过反射来查询(不是所有的注解都是可通过反射能查询的,要看你的注解是如何定义的)--反正总是需要一个注解处理器的]。