java中怎么自定义注解详解

33次阅读
没有评论

共计 1037 个字符,预计需要花费 3 分钟才能阅读完成。

在 Java 中,可以使用 @interface 关键字来定义注解。自定义注解的语法如下:

public @interface CustomAnnotation {String value() default "";
    int number() default 0;
}

在自定义注解中,可以定义多个成员变量,并为这些成员变量指定默认值。成员变量的类型可以是基本类型、String、枚举、Class、注解或它们的数组。

自定义注解可以通过元注解来为注解添加元数据,常见的元注解有 @Retention@Target@Documented@Inherited 等。

下面是一个使用自定义注解的示例:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Log {String value();
}

public class MyClass {@Log("methodA")
    public void methodA() {// 方法体
    }

    @Log("methodB")
    public void methodB() {// 方法体
    }
}

public class Main {public static void main(String[] args) {MyClass myClass = new MyClass();
        Method[] methods = myClass.getClass().getMethods();
        for (Method method : methods) {if (method.isAnnotationPresent(Log.class)) {Log annotation = method.getAnnotation(Log.class);
                System.out.println(annotation.value());
            }
        }
    }
}

在上述示例中,@Log是一个自定义注解,用于标记需要记录日志的方法。MyClass类中的 methodA()methodB()方法都使用了 @Log 注解进行标记。

Main 类中,通过反射获取 MyClass 类的所有方法,并使用 isAnnotationPresent() 方法判断方法是否使用了 @Log 注解。如果使用了 @Log 注解,则通过 getAnnotation() 方法获取注解的值。

运行以上代码,输出结果为:

methodA
methodB

这说明 methodA()methodB()方法都被成功地标记为需要记录日志的方法。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-13发表,共计1037字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)