正例:
- public static Result[] getResults() {
- return new Result[0];
- }
-
-
- public static List<Result> getResultList() {
- return Collections.emptyList();
- }
-
-
- public static Map<String, Result> getResultMap() {
- return Collections.emptyMap();
- }
-
-
- public static void main(String[] args) {
- Result[] results = getResults();
- for (Result result : results) {
- ...
- }
-
-
- List<Result> resultList = getResultList();
- for (Result result : resultList) {
- ...
- }
-
-
- Map<String, Result> resultMap = getResultMap();
- for (Map.Entry<String, Result> resultEntry : resultMap) {
- ...
- }
- }
优先使用常量或确定值来调用 equals 方法
对象的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals 方法。当然,使用 java.util.Objects.equals() 方法是最佳实践。
反例:
- public void isFinished(OrderStatus status) {
- return status.equals(OrderStatus.FINISHED); // 可能抛空指针异常
- }
正例:
- public void isFinished(OrderStatus status) {
- return OrderStatus.FINISHED.equals(status);
- }
-
-
- public void isFinished(OrderStatus status) {
- return Objects.equals(status, OrderStatus.FINISHED);
- }
枚举的属性字段必须是私有不可变
枚举通常被当做常量使用,如果枚举中存在公共属性字段或设置字段方法,那么这些枚举常量的属性很容易被修改。理想情况下,枚举中的属性字段是私有的,并在私有构造函数中赋值,没有对应的 Setter 方法,最好加上 final 修饰符。
反例:
- public enum UserStatus {
- DISABLED(0, "禁用"),
- ENABLED(1, "启用");
-
-
- public int value;
- private String description;
-
-
- private UserStatus(int value, String description) {
- this.value = value;
- this.description = description;
- }
-
-
- public String getDescription() {
- return description;
- }
-
-
- public void setDescription(String description) {
- this.description = description;
- }
- }
(编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|