zoukankan      html  css  js  c++  java
  • 简单使用自定义注解

    注解是Java提供的设置程序中元素关联信息和元数据的方法,它是一个接口,程序可以通过反射获取指定程序中元素的注解对象,然后通过注解对象获取注解中的元数据信息。

     

    下面写一个简单的自定义注解以及使用方法

    自定义注解

    import java.lang.annotation.*;
    
    @Target(ElementType.FIELD)  //@Target修饰注解作用的范围,FIELD说明作用于描述域,其他选项可以百度获取
    @Retention(RetentionPolicy.RUNTIME) //@Retention说明注解被保留的级别,RUNTIME说明运行时有效,其他选项可以百度获取
    @Documented //@Documented表明该注解可以被javadoc类的工具文档化
    public @interface FruitProvider {
        //供应商编号
        public int id() default -1;
        //供应商名称
        public String name() default "";
        //供应商地址
        public String address() default "";
    }

    自定义注解处理器

    import java.lang.reflect.Field;
    
    public class FruitInfoUtil {
        public static void getFruitInfo(Class<?> clazz) {
            String strFruitProvider = "供应商信息:";
    
            Field[] fields = clazz.getDeclaredFields();//通过反射获取处理注解
            for (Field field : fields) {
                //如果成员被该注解标注
                if (field.isAnnotationPresent(FruitProvider.class)) {
                    //拿到对应的注解信息
                    FruitProvider fruitProvider = (FruitProvider) field.getAnnotation(FruitProvider.class);
                    //处理注解信息
                    strFruitProvider = "供应商编号:" + fruitProvider.id() + " 供应商名称:"+ fruitProvider.name()
                            + " 供应商地址:" + fruitProvider.address();
                    System.out.println(strFruitProvider);
                }
            }
        }
    }

    使用注解接口

    public class Apple {
        
        @FruitProvider(id = 1,name = "陕西红富士",address = "陕西省西安市")
        private String appleProvider;
    
        public void setAppleProvider(String appleProvider) {
            this.appleProvider = appleProvider;
        }
    
        public String getAppleProvider() {
            return appleProvider;
        }
    }

    测试一下

    public class Test {
        public static void main(String[] args) {
            FruitInfoUtil.getFruitInfo(Apple.class);
        }
    }

    输出结果

    供应商编号:1 供应商名称:陕西红富士 供应商地址:陕西省西安市

    至此完成简单的自定义注解定义及使用

  • 相关阅读:
    如何给远程主机开启mysql远程登录权限
    Session机制详解
    CentOS 下PHP的卸载
    PHP实现执行定时任务的几种思路详解
    容易产生错误的where条件
    php超时任务处理
    (转载)Android项目tab类型主界面总结
    使用xutils发送POST请求,携带json和图片二进制文件数据获取服务器端返回json数据
    Android开发中常见错误
    (转载)Android显示原理简介
  • 原文地址:https://www.cnblogs.com/dwwzone/p/13063983.html
Copyright © 2011-2022 走看看