如果使用注释对类进行批注,那么该批注的定义是否必须位于运行时类路径中才能使用该类?例如,给出注释
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Retention;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Component {}
Run Code Online (Sandbox Code Playgroud)
我可以执行该程序吗?
@Component
public class Test {
public static void main(String[] args) {
System.out.println("It worked!");
}
}
Run Code Online (Sandbox Code Playgroud)
没有在类路径中的Component.class?(在我的测试中,我可以,但这个行为是由规范定义的吗?)
我问,因为使用库中的注释是否会创建对该库的依赖性存在冲突.
运行时注解是注解处理器在运行时处理的元信息。如果在运行时可以访问注释,那么您肯定会在类路径中添加注释。例如junit肯定需要类路径中的注释来确定测试方法。
如果没有对注解进行处理,则不需要将其放在类路径中。
| 归档时间: |
|
| 查看次数: |
2506 次 |
| 最近记录: |