JAVA:写代码也可以如此优雅----自定义注解

JAVA:写代码也可以如此优雅----自定义注解

作用

在程序中起到一个标注作用,比如执行这方法的时候我需要记录日志,我可以在上面标注一下;在比如这个方法是一个有问题的方法但是又改不动需要特殊处理,我也可以标注一下;在比如这个方法它从父类中继承来的,我也可以标注一下,标注的目的是为了处理。如果标注的东西你没有处理那他就只是一个注解 ,没有如何作用,在符合语法的情况下不会对程序造成影响。

怎么用

自定义注解

    1.自定义注解本质上就是一个接口,只是实现了特殊接口

    2.实现方式:
        1.创建自己的接口
        例如:
            //设置注解作用域  METHOD:标注在方法上  TYPE:标注在接口丶类丶枚举 上   FIELD:标注在属性上
            @Target({ElementType.METHOD,ElementType.TYPE,ElementType.FIELD})
            //设置注解运行范围
            //    1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃;
            //    2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期;
            //    3、RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在;
            @Retention(RetentionPolicy.RUNTIME)
            public @interface IsZPF {

                //定义属性并设置默认值
                String name() default "大帅哥";

                String sex() default "男";
            }

    3.获取接口属性的值(反射)
            ps:SysUser为用了注解的类
            Class<SysUser> sysUserClass = SysUser.class;
            //获取类上的指定注解
            IsZPF isZPF = sysUserClass.getDeclaredAnnotation(IsZPF.class);
            System.out.println(isZPF.name());
            System.out.println(isZPF.sex());

使用场景

1.AOP中切点设置(解耦合)
2.特定方法标注(比如特殊接口加盐)
3.特定类标注(比如特殊对象加载到Spring容器)
3.特定 属性标注(比如特殊属性初始化值)


注意:注解不是必要的,但不得不说注解改变了java编程的设计手段,改变了java开发者的思维方式,它能让代码变得更优雅。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值