java - 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;
}
解决方案
代替
staff[i].GetUserRole().equals("User")
你大概是说
staff[i].GetUserRole().equals(userRole.User)
或者
staff[i].GetUserRole() == userRole.User
附带说明一下,根据 Java 的命名约定,枚举应该真正命名为UserRole
,其值ADMIN
和USER
. 像这样:
enum UserRole {
ADMIN,
USER
};
推荐阅读
- gem5 - Gem5 模拟中未显示多个 CPUID
- java - 具有 gradle 依赖关系的 MBeans 构造函数错误
- dplyr - 如何根据R中最后一行中的条件过滤第一行和最后一行
- ckeditor - CKEditor 仅粗斜体
- c - 抑制来自 PC Lint Global Wrap up 的消息?
- c# - 如何将 URL 插入锚点 href ASP.NET MVC
- sql-server - SQL Count 每月出现多次并按月聚合的记录数
- selenium - RestAssured - 使用 Selenium 和 Test NG 测试 Restful API - 运行时抛出连接超时错误
- c++ - 将 QString 转换为浮点数会给我错误
- regex - 如何减少这种 grep 重复?