如何比较JAVA中的枚举值
How to compare the value of enumeration in 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 中的枚举声明 class
enum userRole{
Admin,
User
}
这里是setter和getter
public void SetUserRole(userRole userRole){
this.userRole = userRole;
}
public userRole GetUserRole(){
return userRole;
}
而不是
staff[i].GetUserRole().equals("User")
你的意思可能是
staff[i].GetUserRole().equals(userRole.User)
或
staff[i].GetUserRole() == userRole.User
作为旁注,根据 Java 的命名约定,枚举实际上应该命名为 UserRole
,其值 ADMIN
和 USER
。像这样:
enum UserRole {
ADMIN,
USER
};
替换staff[i].GetUserRole().equals("User")
和staff[i].GetUserRole() == userRole.User
因为它们引用同一个实例,所以您可以使用 == 而不是 .equals
也像 Feredrico klez Culloca 所说的那样,您应该研究命名约定,枚举名称等常量倾向于全部大写,枚举和 类 和接口倾向于大写,变量名称和方法倾向于驼峰式。
我想在用户登录时创建一些东西,如果以用户身份登录,那么它将进入第一个模块,否则如果用户以管理员身份登录,它将进入第二个模块。问题是我不知道如何使用枚举来比较用户角色。
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 中的枚举声明 class
enum userRole{
Admin,
User
}
这里是setter和getter
public void SetUserRole(userRole userRole){
this.userRole = userRole;
}
public userRole GetUserRole(){
return userRole;
}
而不是
staff[i].GetUserRole().equals("User")
你的意思可能是
staff[i].GetUserRole().equals(userRole.User)
或
staff[i].GetUserRole() == userRole.User
作为旁注,根据 Java 的命名约定,枚举实际上应该命名为 UserRole
,其值 ADMIN
和 USER
。像这样:
enum UserRole {
ADMIN,
USER
};
替换staff[i].GetUserRole().equals("User")
和staff[i].GetUserRole() == userRole.User
因为它们引用同一个实例,所以您可以使用 == 而不是 .equals
也像 Feredrico klez Culloca 所说的那样,您应该研究命名约定,枚举名称等常量倾向于全部大写,枚举和 类 和接口倾向于大写,变量名称和方法倾向于驼峰式。