gpt4 book ai didi

java - 直接获取字段的注解

转载 作者:行者123 更新时间:2023-12-02 06:41:58 25 4
gpt4 key购买 nike

在一个类中,我有几个字段是匿名类。其中一些有注释。例如:

public class MainClass {

@Annotation
public static Test t = new Test() {...}

Interface Test {...}

}

我知道我可以通过执行 MainClass.class.getField("t").getAnnotations() 查看 t 的注释,但是有什么方法可以通过引用 t 来获取 t 的注释吗?例如,如果我有一组测试,我可以通过迭代来查看它们的注释吗?

Collection<Test> c;
...
// MainClass.t is in collection c
...

for (Test test : c) {

// get annotation of test

}

我猜这是不可能的,如果不可能,接近我想做的事情的最佳方法是什么?

最佳答案

引用只是指向一个对象,而对象没有任何注释。字段(方法、类、参数等)可以。所以,不,这是不可能的。

what's the best way to get close to what I'm trying to do?

没有。

public void someMethod() {
Test test = MainClass.t;
// some more
}

MainClass.t 是一个Field。局部变量 test 就是一个局部变量。

请注意,您可以注释局部变量

public void someMethod() {
@SomeAnnotation
Test test;
}

@Target(value = { ElementType.LOCAL_VARIABLE })
public @interface SomeAnnotation {

}

但是无法检索该注释。它主要由 IDE 使用,例如 @SuppressWarnings

关于java - 直接获取字段的注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19057812/

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