Java自定义注解进行参数校验

本文介绍了Java自定义注解的用途,如登陆、权限拦截、日志处理,并详细讲解了如何创建自定义注解,包括注解方法的设定、默认值以及元注解的使用。同时,阐述了Java的内置注解如@Override、@Deprecated和@SuppressWarnings。通过反射机制解析注解,并给出了一例应用在手机号验证中的项目实例,通过自定义校验规则进行参数校验。
摘要由CSDN通过智能技术生成

Java自定义注解

简介

Java自定义注解是通过运行时靠反射获取注解。

​ 常用于:登陆、权限拦截、日志处理,例如我们要获取某个方法的调用日志,可以通过AOP(动态代理机制)给方法添加切面,通过反射来获取方法包含的注解,如果包含日志注解,就进行日志记录。

​ 注解相当于是一种嵌入在程序中的元数据,可以使用注解解析工具或编译器对其进行解析,也可以指定注解在编译期或运行期有效。


创建自定义注解

创建自定义注解与编写接口很相似,除了它的接口关键字前有个@符号,我们可以在注解中定义方法

package com.tao.annotations;
 
import java.lang.annotation.*;
 
@Documented
@Target(ElementType.METHOD)
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface MethodInfo{
   
    String author() default "Pankaj";
    String date();
    int revision() default 1;
    String comments();
}
  • 注解方法,没有参数
  • 可设定默认值
  • 返回类型仅限于原始类型:字符串、枚举、注解,或以上构成的数组
  • 可包含四种【元注解】与之绑定
    • Documented – 表示使用该注解的元素应被javadoc或类似工具文档化
    • **Target --**表示支持注解的元素种类:可选【TYPE, METHOD, CONSTRUCTOR, FIELD】,不写则全部支持
    • **Inherited --**注解类型会被自动继承
    • **Retention --**接收RetentionPolicy参数,可选【SOURCE, CLASS, RUNTIME】,表示注解类型保留时间的长短
Java内置注解

Java提供3种内置注解 : @Override、@Deprecated、@SuppressWarnings

  • @Override : 表示正在覆盖SuperType的方法,该方法来自父类或接口

  • @Deprecated :表示该方法已被弃用,应在javadoc中提供信息,说明弃用原因以及替代方法

  • @SuppressWarnings:这个注解仅仅是告知编译器,忽略它们产生的特殊警告

    示例如下:

    package com.tao.annotations;
     
    import java.io.FileNotFoundException;
    import java.util.*;
     
    public class AnnotationExample {
         
     
        public static void main(String[] args) {
         
        }
     
        @Override
        @MethodInfo(author = "Pankaj", comments = "Main method"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值