什么是你遇到的源代码中最好的评论?
如果将@Transactional放置在DAO类和/或它们的方法中,还是最好使用DAO对象来注释正在调用的Service类? 或者是否有意义的注释这两个“层”?
什么是使用Java的@Override注释的最佳做法,为什么? 用@Override注解来标记每一个重写的方法似乎是矫枉过正的。 是否有某些编程情况需要使用@Override和其他不应该使用@Override ?
我正在寻找使我的代码更具可读性,并使用工具如IDE代码检查和/或静态代码分析(FindBugs和声纳),以避免NullPointerExceptions。 许多工具看起来与@NotNull / @NonNull / @Nonnull注解不兼容,并且在我的代码中列出所有这些工具将会很糟糕。 任何建议哪一个是最好的? 以下是我找到的等效注释列表: javax.validation.constraints.NotNull 创建运行时验证,而不是静态分析。 文件 edu.umd.cs.findbugs.annotations.NonNull Findbugs使用静态分析,因此Sonar(现在是Sonarqube ) 文件 javax.annotation.Nonnull 这可能也适用于Findbugs,但JSR-305是不活动的。 (另见: JSR 305的状态是什么? ) 来源 org.jetbrains.annotations.NotNull IntelliJ IDEA IDE用于静态分析。 文件 lombok.NonNull 用于控制Project Lombok中的代码生成。 因为没有标准的占位符注释。 来源 , 文件 android.support.annotation.NonNull Android中提供的标记注释,由支持注释包提供 文件 org.eclipse.jdt.annotation.NonNull Eclipse用于静态代码分析 文件