引用此链接:
一些开发人员认为Java编译器理解标记并相应地工作.这个不对.标签实际上对Java编译器或运行时本身没有任何意义.有些工具可以解释这些标签
.
如果注释中包含的信息只是元数据,那么如果我错误地注释,为什么我的代码不能编译?那个特别的注释应该被忽略吧?
编辑:
仅提供一个示例... Jersey上的简单JAX-RS Web服务使用如下注释:
@Path("mypath")
Run Code Online (Sandbox Code Playgroud)
现在,如果我将其更改为:
@Paths("mypath")
Run Code Online (Sandbox Code Playgroud)
要么
@Path(123)
Run Code Online (Sandbox Code Playgroud)
它不应该阻止我根据上面的链接编译代码...
这篇文章至少对一些注释是错误的.想一想@SuppressWarnings,@Override编译器确实有非常具体的知识.事实上,文章指出了这一点:
编译器使用元数据来执行一些基本的编译时检查.例如,有一个覆盖注释,允许您指定方法覆盖超类中的另一个方法.
如果"标签实际上对Java编译器没有意义",编译器可以使用它,我不知道......
此外,即使对于编译器没有附加任何语义含义的注释,它仍将验证当您尝试指定特定参数等时,这些参数具有您正在使用的注释的合理名称和类型.
| 归档时间: |
|
| 查看次数: |
284 次 |
| 最近记录: |