请给出三个.isAdmin方法的 Java代码片段实现，判断对象是否具有管理员权限。请按以下顺序编号实现，并用四级标题排列。也可以适当加上注释说明。代码实现间請用一个空行分隔。
user
```
#### 1. 使用布尔字段直接判断

```java
public class User {
    private boolean isAdmin; // 管理员标志，true表示是管理员

    // 构造函数
    public User(boolean isAdmin) {
        this.isAdmin = isAdmin;
    }

    // 判断用户是否是管理员
    public boolean isAdmin() {
        return this.isAdmin;
    }
}
```

#### 2. 使用角色列表判断

```java
import java.util.List;
import java.util.Arrays;

public class User {
    private List<String> roles; // 用户角色列表

    // 构造函数
    public User(List<String> roles) {
        this.roles = roles;
    }

    // 判断用户是否是管理员
    public boolean isAdmin() {
        return this.roles.contains("admin"); // 判断角色列表中是否包含"admin"
    }

    public static void main(String[] args) {
        User adminUser = new User(Arrays.asList("user", "admin"));
        User normalUser = new User(Arrays.asList("user"));

        System.out.println("Admin User: " + adminUser.isAdmin()); // 输出: Admin User: true
        System.out.println("Normal User: " + normalUser.isAdmin()); // 输出: Normal User: false
    }
}
```

#### 3. 使用角色枚举类型判断

```java
public class User {
    private UserRole role; // 用户角色

    // 构造函数
    public User(UserRole role) {
        this.role = role;
    }

    // 判断用户是否是管理员
    public boolean isAdmin() {
        return this.role == UserRole.ADMIN; // 判断用户角色是否为管理员
    }

    // 用户角色枚举
    public enum UserRole {
        USER, ADMIN
    }

    public static void main(String[] args) {
        User adminUser = new User(UserRole.ADMIN);
        User normalUser = new User(UserRole.USER);

        System.out.println("Admin User: " + adminUser.isAdmin()); // 输出: Admin User: true
        System.out.println("Normal User: " + normalUser.isAdmin()); // 输出: Normal User: false
    }
}
```
```
assistant