首页 > 解决方案 > JAVA中如何比较枚举的值

问题描述

我想在用户登录时创建一些东西,如果以用户身份登录,那么它进入第一个模块,否则如果用户以管理员身份登录,它进入第二个模块。问题是我不知道如何使用枚举来比较用户角色。

for(int i = 0; i < staffCount; i++) {
    if(username.equals(staff[i].GetStaffID()) && pass.equals(staff[i].GetPassword()) && staff[i].GetUserRole().equals("User")){
        System.out.println("hello user");
    }
}

这是我在 Staff 类中的枚举声明

enum userRole{
    Admin,
    User
}

这是setter和getter

public void SetUserRole(userRole userRole){
    this.userRole = userRole;
}

public userRole GetUserRole(){
    return userRole;
}

标签: javaenumeration

解决方案


代替

staff[i].GetUserRole().equals("User")

你大概是说

staff[i].GetUserRole().equals(userRole.User)

或者

staff[i].GetUserRole() == userRole.User

附带说明一下,根据 Java 的命名约定,枚举应该真正命名为UserRole,其值ADMINUSER. 像这样:

enum UserRole {
    ADMIN,
    USER
};

推荐阅读