我知道注释用于修改代码而不实际是代码,例如:
@Author(
name = "Benjamin Franklin",
date = "3/27/2003"
)
Run Code Online (Sandbox Code Playgroud)
但我不明白如何使用注释比只说 name = "Benjamin Franklin" 更好/更清晰/更简洁?添加注解如何加强代码?
编辑:对不起,另一个问题,但我知道@Override 可以帮助防止/跟踪调用方法或类时的拼写错误,但它是如何做到的?它对实际程序有帮助吗?
注释只是元数据。它们本身几乎没有任何作用。必须有一个注释处理器,无论是在编译器还是运行时级别,都可以使用它们来完成某些任务。
带有像这样的注释
@Author(
name = "Benjamin Franklin",
date = "3/27/2003"
)
Run Code Online (Sandbox Code Playgroud)
例如,某些注释处理器可能会在运行时通过反射读取它,并创建一些日志文件,该作者在该日期编写了它所注释的内容。
注释是元数据。
@Override注释用于确保您重写超类的方法,而不仅仅是创建同名的方法。这里常见的错误包括:
equal(Object o)而不是equals(Object o)提出不同的参数集
MyString 扩展 String { public boolean equals(MyString str) {} }
equals(MyString str)不会覆盖该方法equals(Object o),因此不会被标准 Java 比较器使用(在某些标准函数中使用,例如,List.contains()这很容易出现错误情况)。此注释可帮助编译器确保您正确编码所有内容,从而有助于编程。
@Deprecated注释不会使程序无法编译,但它使开发人员考虑使用可以和/或将在未来版本中删除的代码。因此,他们(开发人员)会考虑转向另一组(更新的)功能。如果您使用该标志-Xlint编译程序,编译过程将返回错误,除非您删除已弃用代码的所有用法或使用注释显式标记它们@SuppressWarnings("deprecation")。
@SuppressWarnings用于抑制警告(是的,我知道这是 Captain Obvious 风格:))。有弃用抑制@SuppressWarnings("deprecation")、不安全类型转换@SuppressWarnings("unchecked")和其他一些。当您的项目编译器有编译标志-Xlint并且您无法(或不想)更改它时,这非常有用。
您还可以将注释处理器集成到程序构建过程中,以确保程序代码满足某种标准。例如,通过 IntelliJ Idea IDE 注释处理器,您可以使用@Nullable和@NotNull注释。当其他程序员使用您的代码时,它们会向他们展示,以便可以将 null 作为某个参数传递给方法,也可以不传递。如果它们传输 null,则会在编译期间或执行单行方法的代码之前导致异常。
因此,如果您充分利用注释的潜力,它们将非常有帮助。
| 归档时间: |
|
| 查看次数: |
883 次 |
| 最近记录: |