java - 有用的 Java 注释

标签 java annotations development-environment

我有兴趣找出人们认为哪些 Java 注释在开发过程中最有用。这不一定限于核心 Java API,您可以包含在第三方库中找到的注释或您自己开发的注释(确保包含指向源的链接)。

我真的对常见的开发任务很感兴趣,而不是知道为什么 JPA 中的 @ManyToOne(optional=false) 很棒...

包括注释和说明为什么它对一般开发有用。

最佳答案

我为其他用户投了一堆赞成票,但只是为了给我两分钱,我在开发中经常使用的仅有的三个注释是编译器直接使用的主要注释:

@Override - 非常适合在您重写另一个方法时在代码中明确显示。如果您不按照您认为的方式重写方法,还具有被标记为编译错误的额外好处(请参阅此 other SO post )。此标志通知编译器您打算覆盖某些内容,因此如果您不这样做(例如,您忘记了方法签名中的参数),编译器将捕获它。

@Deprecated - 指明您标记为从现在起不应使用的任何内容。编译器将针对使用您标记为已弃用的任何代码元素生成警告。一般来说,弃用表示“这在过去存在,但它可能会在未来的版本中消失。”确保您还结合使用相关的“@deprecated”Javadoc 标志来告诉人们他们应该使用什么。

@SuppressWarnings - 告诉编译器禁止它本来会生成的特定警告。这对于诸如当您有意使用已弃用的方法时很有用,您可以阻止弃用警告。我倾向于经常使用它来屏蔽每个人最喜欢的关于可序列化类的“序列化 UID”警告(您是否应该这样做是另一次辩论)。对于那些您知道自己正在做的事情正在生成警告但您 100% 确定这是您想要的正确行为的情况,这很方便。

看看Sun Annotations Guide并查看“编译器使用的注释”部分。对这三个问题进行了相当长的讨论。

关于java - 有用的 Java 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1843516/

相关文章:

c++ - 学习C++,关于环境的问题

java - 在 Java 中使用 BufferedOutputStream

java - 当应用程序被销毁时,@PersistenceUnit 会关闭我的 EntityManagerFactory 吗?

Spring MVC 3.1 没有注释?

java - 错误无法找到 Java SE 运行时环境/从头开始

python - 在 ubuntu 上学习 python 3.0

java - 为什么 ForkJoinPool::shutdownNow 返回一个空列表?

java - 无法使用 Intellij 和 1.8 JDK 运行 fxml 应用程序

java - 如何使文档中的字段唯一?

ios - 如何让 Mapbox 注释显示当前位置信息