gpt4 book ai didi

java - 从类中引用 java.lang.annotation.Annotation?

转载 作者:行者123 更新时间:2023-11-29 05:24:13 31 4
gpt4 key购买 nike

我很难弄清楚如何从其实际实现类中获取对 java.lang.annotation.Annotation 的引用。

注释本身看起来像这样(来自框架):

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiresPermissions {
...snip...
}

在我的使用代码中,我想做这样的事情:

Annotation requiresPermissionAnnotation = RequiresPermissions.class;

在我的一生中,我无法弄清楚要转换什么或如何转换它,或者我可以使用什么类型来获得它。

作为解决方法,我可以有一个简单的类,它有一个带有此注释(和其他注释)的方法,并在该类上使用反射方法来获取 java.lang.annotation.Annotation ,但这似乎很奇怪..

谢谢!

最佳答案

注解的实例只存在于被注解的类型/方法中。这就是你获得它的方法

Annotation requiresPermissionAnnotation = SomeAnnotatedClass.class.getAnnotation(RequiresPermissions.class);

您可以强制转换为 RequiresPermissions 以访问任何属性。

RequiresPermissions requiresPermissions = (RequiresPermissions) requiresPermissionAnnotation;

或者直接获取

RequiresPermissions requiresPermissions = SomeAnnotatedClass.class.getAnnotation(RequiresPermissions.class);

对于一个方法

Annotation requiresPermissionAnnotation = someMethodInstance.getAnnotation(RequiresPermissions.class);

关于java - 从类中引用 java.lang.annotation.Annotation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23344165/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com