zoukankan      html  css  js  c++  java
  • 注释创建与应用

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

    @Target(ElementType.TYPE)//这个标注应用于类
    @Retention(RetentionPolicy.RUNTIME)//标注会一直保留到运行时
    @Documented//将此注解包含在javadoc中
    public @interface Description {
    String value();
    }
    import java.lang.annotation.Documented;
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    //注意这里的@Target与@Description里的不同,参数成员也不同
    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface Name {
        String originate();
        String community();
    }
    
    
    @Description(value="javaeye,做最棒的软件开发交流社区")
    public class JavaEyer {
        @Name(originate="创始人:robbin",community="javaEye")
        public String getName()
        {
            return null;
        }
    
        @Name(originate="创始人:江南白衣",community="springside")
        public String getName2()
        {
            return "借用两位的id一用,写这一个例子,请见谅!";
        }
    }
    import java.lang.reflect.Method;
    import java.util.HashSet;
    import java.util.Set;
    
    public class TestAnnotation {
        /**
         * author lighter
         * 说明:具体关天Annotation的API的用法请参见javaDoc文档
         */
        public static void main(String[] args) throws Exception {
            String CLASS_NAME = "lighter.javaeye.com.JavaEyer";
            //        返回CLASS_NAME路径类下的所有类
            Class test = Class.forName(CLASS_NAME);
            //        获得所有方法
            Method[] method = test.getMethods();
            //        Description注释是否存在
            boolean flag = test.isAnnotationPresent(Description.class);
            if(flag)
            {
            //        引用Description注释
                Description des = (Description)test.getAnnotation(Description.class);
                System.out.println("描述:"+des.value());
                System.out.println("-----------------");
            }
    
            //把JavaEyer这一类有利用到@Name的全部方法保存到Set中去
            Set<Method> set = new HashSet<Method>();
            for(int i=0;i<method.length;i++)
            {
                boolean otherFlag = method[i].isAnnotationPresent(Name.class);
                if(otherFlag) set.add(method[i]);
            }
            for(Method m: set)
            {
                Name name = m.getAnnotation(Name.class);
                System.out.println(name.originate());
                System.out.println("创建的社区:"+name.community());
            }
        }
    }
  • 相关阅读:
    SkylineGlobe 如何实现绘制圆形Polygon和对图层的圆形范围选择查询
    如何修改Oracle服务IP地址
    TerraGate软件安装后,不能启动的解决办法
    SkylineGlobe SFS发布的WFS和WMS服务测试
    SkylineGlobe 如何实现二次开发加载KML文件
    如何屏蔽SkylineGlobe提供的三维地图控件上的快捷键
    SkylineGlobe 如何实现FlyTo定位到目标点之后触发的事件函数
    转子百度知道:LTE上行采用DC子载波,而下行置零,为什么?
    转载:LTE小区搜索过程
    dB dBc dBi dBd dBm dBW 定义
  • 原文地址:https://www.cnblogs.com/xxupup/p/14804612.html
Copyright © 2011-2022 走看看