黑马程序员技术交流社区

标题: 如何获取注释的名字呢 [打印本页]

作者: 陈斌    时间: 2012-3-1 22:57
标题: 如何获取注释的名字呢
package Study.Annotation;

import java.lang.annotation.*;
import java.util.Set;

import javax.annotation.*;
@IcastAnnotation
public class MyAnnotation {

        /**
         * @param args
         */
       
        public static void main(String[] args) {
                // TODO Auto-generated method stub
     sayHello();
     if(MyAnnotation.class.isAnnotationPresent(IcastAnnotation.class)==true)
     {
             Annotation[] annot= IcastAnnotation.class.getAnnotations();
             for(int i=0;i<annot.length;i++)
             {
                     
                     System.out.println(annot.length+annot[i].getClass().getName().toString());
             }
             System.out.println("ss");
     }
        }
        @Deprecated
        public static void sayHello()
        {
          System.out.println("hhhhh");
        }

}
----------------------------------------------------------------------
package Study.Annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface IcastAnnotation {

}
----------------------------------------------------------------------
如何获取注释的名字呢???????
作者: 陈斌    时间: 2012-3-2 12:56
System.out.println(annot.length+annot[i].toString());自己想出来了

作者: 戚雪晖    时间: 2012-3-2 13:21
本帖最后由 1毫秒的价值 于 2012-3-2 13:26 编辑

你要获取的是注解类型的名字,因此该写成:annot.annotationType().getName()
你写成getClass().getName()的话,就是获取的字节码的名字了


作者: 戚雪晖    时间: 2012-3-2 13:25
陈斌 发表于 2012-3-2 12:56
System.out.println(annot.length+annot.toString());自己想出来了

你想的是不对的,toString()是描述这个前面的对象内容。因此在这里toString描述的是注解内容,当然默认的是包括他的名字及属性等所有的东西。




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