当前位置:首页 > Java 语言特性 > 正文

Java优学网枚举定义短文:从基础到实战,轻松掌握枚举最佳实践

public enum TrafficLight {

RED, YELLOW, GREEN

}

public enum UserLevel {

BRONZE("青铜", 0, 100),
SILVER("白银", 101, 500),
GOLD("黄金", 501, 2000),
PLATINUM("铂金", 2001, 10000);

private final String chineseName;
private final int minPoints;
private final int maxPoints;

UserLevel(String chineseName, int minPoints, int maxPoints) {
    this.chineseName = chineseName;
    this.minPoints = minPoints;
    this.maxPoints = maxPoints;
}

public String getChineseName() {
    return chineseName;
}

public boolean isInRange(int points) {
    return points >= minPoints && points <= maxPoints;
}

public static UserLevel fromPoints(int points) {
    for (UserLevel level : values()) {
        if (level.isInRange(points)) {
            return level;
        }
    }
    return BRONZE;
}

}

// 推荐的做法 public enum UserRole {

Java优学网枚举定义短文:从基础到实战,轻松掌握枚举最佳实践

STUDENT,
TEACHER,
ADMINISTRATOR,
CONTENT_REVIEWER

}

// 不推荐的做法 public enum Role {

S,  // 含义不明确
T,  // 过于简略
A,
CR

}

Java优学网枚举定义短文:从基础到实战,轻松掌握枚举最佳实践

public enum UserRole {

GUEST(1, "访客"),
STUDENT(2, "学员"), 
TEACHER(3, "讲师"),
ASSISTANT(4, "助教"),
ADMIN(5, "管理员"),
SUPER_ADMIN(6, "超级管理员");

private final int level;
private final String description;

UserRole(int level, String description) {
    this.level = level;
    this.description = description;
}

public boolean canAccessCourseManagement() {
    return this.level >= TEACHER.level;
}

public boolean canModifySystemSettings() {
    return this == ADMIN || this == SUPER_ADMIN;
}

}

public enum CourseCategory {

PROGRAMMING("programming") {
    @Override
    public String getDisplayName(Locale locale) {
        if (Locale.CHINA.equals(locale)) {
            return "编程开发";
        }
        return "Programming";
    }
},
DESIGN("design") {
    @Override
    public String getDisplayName(Locale locale) {
        if (Locale.CHINA.equals(locale)) {
            return "设计创意";
        }
        return "Design";
    }
};

private final String code;

CourseCategory(String code) {
    this.code = code;
}

public abstract String getDisplayName(Locale locale);

}

Java优学网枚举定义短文:从基础到实战,轻松掌握枚举最佳实践

你可能想看:

相关文章:

  • Java优学网枚举方法教程:从基础定义到高级应用,轻松掌握枚举编程技巧2025-10-19 12:48:09
  • 文章已关闭评论!