gpt4 book ai didi

java - getAnnotations() 为空且未按预期工作

转载 作者:行者123 更新时间:2023-11-29 04:19:07 24 4
gpt4 key购买 nike

我期待这段代码:

import java.util.Arrays;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
@interface Sometation {}


public class Test {
@Sometation
public static void main(String[] args) {
System.out.println(Arrays.toString(Test.class.getAnnotations()));
System.out.println(Arrays.toString(Test.class.getDeclaredAnnotations()));
}

}

至少产生一个非空数组。相反,它导致

[]
[]

这发生在 eclipse 中以及当我在终端中运行它时。我正在运行“java-8-openjdk-amd64”(由 apt 安装在 UbuntuMATE 16.04 上)。

最佳答案

您注释了 main() 方法,而不是 Test 类。 Test 类没有注释。要查看您添加的注释,您需要先获取该方法,然后使用 Method#getDeclaredAnnotations() .像(未经测试):

Test.class.getMethod("main", String[].class).getDeclaredAnnotations()

或者,您可以将注释放在类上:

@Sometation
public class Test { ... }

然后您的原始代码应该显示一些非空数组。

关于java - getAnnotations() 为空且未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50380291/

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