Java注释基础知识

时间:2013-11-21 09:34:49

标签: java annotations

我是注释的新手。我已经阅读了许多解释注释概念的教程。但我无处可找到有关在类中定义多个注释的信息。所以请给我一些关于定义和访问多个注释的见解。下面是我在类中定义两个注释的代码,eclipse IDE给我一个错误“公共类型SampleAnn必须在它自己的文件中定义”..原因是什么这个错误是因为java约定“在类名的名称中每个类只应该有一个公共注释”?

@Documented
@Target(ElementType.LOCAL_VARIABLE)
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface MethodInfo{
int number1;
}

@Documented
@Target(ElementType.LOCAL_VARIABLE)
@Retention(RetentionPolicy.RUNTIME)
public @interface SampleAnn{
int number2;
}

3 个答案:

答案 0 :(得分:2)

你是对的,你只能在一个文件中只有一个顶级类。

但你能做什么:

public class MyAnnotations {

   public @interface SampleAnn { ... }
   public @interface MethodInfo { ... }
}

答案 1 :(得分:1)

每个类文件通常应该有一个公共CLASS,并且注释也不例外。同样重要的是,任何公开定义的实体都与其java文件的名称相同,所以我不知道如何在同一个文件中有两个。

答案 2 :(得分:0)

注释需要位于单独的编译单元(文件)中。

规范所述的顶级类:

  

此限制意味着每个最多必须有一个这样的类型   编译单位。这种限制使Java编译器变得容易   在包中查找命名类。在实践中,许多程序员   选择将每个类或接口类型放在自己的编译中   单位,无论是公开的还是由其他代码引用的   编制单位。

Specification