如何比较JAVA中枚举的值
我想在用户登录时创建一些东西,如果以用户身份登录,那么它将进入第一个模块;如果以管理员身份登录,那么它将进入第二个模块。问题是我不知道如何使用enum来比较用户角色如何比较JAVA中枚举的值,java,enumeration,Java,Enumeration,我想在用户登录时创建一些东西,如果以用户身份登录,那么它将进入第一个模块;如果以管理员身份登录,那么它将进入第二个模块。问题是我不知道如何使用enum来比较用户角色 for(int i = 0; i < staffCount; i++) { if(username.equals(staff[i].GetStaffID()) && pass.equals(staff[i].GetPassword()) && staff[i].GetUserRole()
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");
}
}
这是二传手和接球手
public void SetUserRole(userRole userRole){
this.userRole = userRole;
}
public userRole GetUserRole(){
return userRole;
}
而不是
staff[i].GetUserRole().equals("User")
你可能是说
staff[i].GetUserRole().equals(userRole.User)
或
作为旁注,根据Java的命名约定,枚举应该真正命名为UserRole
,其值为ADMIN
和USER
。像这样:
enum UserRole {
ADMIN,
USER
};
替换
staff[i].GetUserRole().equals(“用户”)
使用staff[i].GetUserRole()==userRole.User
因为它们引用的是同一个实例,所以可以使用==而不是.equals
同样,正如Feredrico klez Culloca所说,您应该研究命名约定,枚举名称之类的常量通常都是大写的,枚举、类和接口往往是大写的,变量名和方法往往是camelcase。很好理解:枚举值可以通过
=
进行比较,因为值是全局单例对象。真正做到enum UserRole
/getUserRole
。
staff[i].GetUserRole() == userRole.User
enum UserRole {
ADMIN,
USER
};