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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈斌 中级黑马   /  2012-3-1 22:57  /  2292 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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 {

}
----------------------------------------------------------------------
如何获取注释的名字呢???????

3 个回复

倒序浏览
System.out.println(annot.length+annot[i].toString());自己想出来了
回复 使用道具 举报
本帖最后由 1毫秒的价值 于 2012-3-2 13:26 编辑

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

回复 使用道具 举报
陈斌 发表于 2012-3-2 12:56
System.out.println(annot.length+annot.toString());自己想出来了

你想的是不对的,toString()是描述这个前面的对象内容。因此在这里toString描述的是注解内容,当然默认的是包括他的名字及属性等所有的东西。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马