用EnumSet代替位域
2023-12-16 21:09:13
在Java中,可以使用EnumSet
来代替位域,以提高代码的可读性和类型安全性。下面是一个简单的例子,演示如何使用EnumSet
来管理一组枚举值:
import java.util.EnumSet;
// 定义一个枚举类型表示权限
enum Permission {
READ, WRITE, EXECUTE;
}
// 定义一个用户类,使用EnumSet表示用户的权限
class User {
private String username;
private EnumSet<Permission> permissions;
public User(String username, EnumSet<Permission> permissions) {
this.username = username;
this.permissions = permissions;
}
public String getUsername() {
return username;
}
public EnumSet<Permission> getPermissions() {
return permissions;
}
public void addPermission(Permission permission) {
permissions.add(permission);
}
public void removePermission(Permission permission) {
permissions.remove(permission);
}
public boolean hasPermission(Permission permission) {
return permissions.contains(permission);
}
}
public class EnumSetExample {
public static void main(String[] args) {
// 创建一个具有初始权限的用户
EnumSet<Permission> initialPermissions = EnumSet.of(Permission.READ, Permission.WRITE);
User user1 = new User("JohnDoe", initialPermissions);
// 输出初始权限
System.out.println("Initial permissions for " + user1.getUsername() + ": " + user1.getPermissions());
// 添加新权限
user1.addPermission(Permission.EXECUTE);
System.out.println("Updated permissions for " + user1.getUsername() + ": " + user1.getPermissions());
// 检查权限
Permission permissionToCheck = Permission.WRITE;
System.out.println(user1.getUsername() + " has permission " + permissionToCheck + ": " + user1.hasPermission(permissionToCheck));
}
}
在这个例子中,Permission
枚举表示权限,而 User
类使用 EnumSet
来表示用户的权限集合。通过使用 EnumSet
,我们可以避免使用传统的位域,从而使代码更加清晰、类型安全,并提高可读性。
文章来源:https://blog.csdn.net/wcg_jishuo/article/details/135036769
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!