正例:
- 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;
- }
- }
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|