字段上的Java注释数量是否有限制?

时间:2012-04-27 11:25:06

标签: java annotations

字段上的Java注释数量是否有限制?我找不到关于这一点的任何信息。

3 个答案:

答案 0 :(得分:9)

不,规范中没有任何限制。

见这里:http://docs.oracle.com/javase/specs/jls/se7/jls7.pdf

一般来说,java文件遇到的唯一限制是os范围限制,例如max。某些文件系统上的文件大小,或者 - 在硬核情况下 - 磁盘大小。某些系统可能在编译或运行100gb .java / .class文件时遇到问题......

随心所欲。只是它可能是糟糕的设计。保持低于10是一个很好的经验法则,我会说。

编辑:毕竟,似乎存在限制。至少在方法上的运行时注释。

  

请注意,最多65535个运行时可见的Java编程语言   注释可以直接附加到程序元素。

不确定这是否也适用于字段。

所以,我想答案取决于你想要添加的注释类型。

虽然在语言规范中没有。我猜他们并不认为有人会尝试它。

答案 1 :(得分:4)

这是class file format specification的限制。

  

4.7.18。 RuntimeVisibleParameterAnnotations属性

     

RuntimeVisibleParameterAnnotations属性是method_info(§4.6)结构的attributes表中的可变长度属性。 RuntimeVisibleParameterAnnotations属性在相应方法的参数上记录运行时可见的Java编程语言注释。

     

请注意,最多 65535 运行时可见的Java编程语言注释可以直接附加到程序元素。

修改

上面的链接还提到了类,方法和元素的RuntimeVisibleAnnotations和RuntimeInvisibleAnnotations - 每个的限制再次为65535. 65535也是结构可以包含的最大值(无符号16位整数),您可能会遇到在你达到这个数字之前很久就存在其他限制。

答案 2 :(得分:0)

我怀疑这个限制高于你所拥有的注释数量(你只能添加一次)或者可能想要添加。

如果您每个人都想添加更多数据,您可以将注释数组的值作为注释的值,但在字符串中包含丰富的信息是添加更多信息的常用方法,例如用JSon格式。