2010-04-01 77 views
4

Java注释是否用于向Java代码添加功能,而不仅仅是添加关于代码中发生的事情的文档?通过注释可以将代码添加到代码中的最高级/复杂功能是什么?Java注释是否添加表示法或功能?

回答

2

在类/方法/字段上,注释基本上不超过标签(带有可选附加数据)。其他代码(库或工具)可以发现这些标签并执行依赖于找到的注释的功能。我没有看到可能通过注释添加的功能的复杂性的实际限制。这可以例如模拟AOP(在具有注释的方法之前或之后添加功能)。

2

注释本身只会将信息(元数据)添加到类中。

但是,可以轻松构建使用该元数据提供附加功能的系统。

例如,您可以使用apt根据注释提供的信息生成类。

1

我会理解注解作为以机器可读方式记录您的代码的方式。 例如在Hibernate中,您可以将对象的整个持久性信息指定为注释。这是直接可读的,而不是在一个遥远的XML文件。但对于生成配置,数据库方案等的工具也是可读的。

2

注释需要一个工具来对其作出反应。如果这样的工具不存在,注释仅仅是一个符号。 “工具”可以是基于APT的代理或使用反射的一些代码(例如,JUnit的@Test)。

Java编译器可识别几个注释,因此具有预定义的语义:@Override@Deprecated,@Target