java 自定义注释(1)--方法声明(日志管理为例子)

本文深入讲解了Java注解的使用方法及其应用场景。包括@Target、@Retention等元注解的作用及意义,通过实例展示了如何自定义注解并应用于方法声明中,以及如何通过反射获取这些注解信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

语法:

@Target({ElementType.FIELD})                      //作用目标
    ElementType.CONSTRUCTOR            构造方法声明
    ElementType.FIELD                             字段声明
    ElementType.LOCAL_VARIABLE         局部变量申明
    ElementType.METHOD                      方法声明
    ElementType.PACKAGE                     包声明
    ElementType.PARAMETER                 参数声明
    ElementType.TYPE                             类接口

@Retention(RetentionPolicy.RUNTIME)        //保留
    RetentionPolicy.SOURCE        只在源码显示,编译时会丢弃
    RetentionPolicy.CLASS            编译时会记录到class中,运行时忽
    RetentionPolicy.RUNTIME        运行时存在,可以通过发射读取

@Inherited                                                     //允许子类继承,可以不加

@Documented                         //注解应该被 javadoc工具记录,可以不加

以下为创建方法声明,实际中具体操作,和在被使用的过程,使用过程具体见日志管理有详细例子https://blog.youkuaiyun.com/qq_14840239/article/details/88863577

@Target(ElementType.METHOD) //方法生命
@Retention(RetentionPolicy.RUNTIME)
public @interface ILog {
    String value() default "";
}

//--------------------------------------------------------
//使用

@ILog(value="获取数据") 
//或 @ILog("获取数据")
public String getData(String id){
    //代码
    return data;
}

//--------------------------------------------------
//注释操作,
1.
    //获得该对象,clazz是 Class<?>类
    Object obj = clazz.getConstructor(new Class[]{}).newInstance(new Object[]{});
    //变量该对象的方法
	for (Method method : clazz.getDeclaredMethods()) {
	    //获取方法的注解,这里特定获取方法上@HelloWorld注解
		ILog say = method.getAnnotation(ILog .class);
    }

2.
    //传入ProceedingJoinPoint joinPoint
    MethodSignature signature = (MethodSignature) joinPoint.getSignature();
    Method method = signature.getMethod();
    ILog syslog = method.getAnnotation(ILog .class);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值