gpt4 book ai didi

java - 如何注释java包并反射(reflect)元数据

转载 作者:行者123 更新时间:2023-11-30 10:40:19 26 4
gpt4 key购买 nike

我想使用简单的注释来注释 java 包:

@Target(ElementType.PACKAGE)
public @interface Related {
int apiVersion() default 0;
}

但是,当我尝试将它添加到任何包时,我遇到了编译错误

Error:(1, 14) java: cannot find symbol
symbol: class Related
location: package com.test.xxx

感谢任何帮助!

编辑

搜索了一下我也发现了这种错误

Error:(1, 1) java: package annotations should be in file package-info.java

最佳答案

为了能够在包上放置注释,您应该创建 package-info.java 文件,该文件应包含如下包定义:

@Related
package tld.some.name;

为了能够反射反射包你还需要设置RetentionPolicy.RUNTIME

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PACKAGE)
public @interface Related {
// stuff...
}

然后你终于可以反射包了:

SomeClassInPackage.class.getPackage().getAnnotation(Related.class)

您还可以使用 java.lang.Package 按名称反射(reflect)包

Package.getPackage("tld.some.name").getAnnotation(Related.class)

关于java - 如何注释java包并反射(reflect)元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38964335/

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