package com.ybw.mathapp.entity; /** * 用户实体类,表示系统中的用户信息。 * *
该类包含用户的基本信息,如用户名、密码和学习级别。 * 用户级别可以是小学、初中或高中。 * * @author 杨博文 * @version 1.0 * @since 2025 */ public class User { /** * 用户名,不可修改。 */ private final String name; /** * 邮箱,不可修改。 */ private final String email; /** * 用户密码,不可修改。 */ private final String password; /** * 用户当前的学习级别,可以修改。 */ private String level; /** * 构造一个新的用户对象。 * * @param name 用户名,不能为空 * @param email 邮箱,不能为空 * @param password 用户密码,不能为空 * @throws IllegalArgumentException 如果 name、email 或 password 为 null 或空字符串 */ public User(String name, String email, String password) { if (name == null || name.trim().isEmpty()) { throw new IllegalArgumentException("用户名不能为空"); } if (email == null || email.trim().isEmpty()) { throw new IllegalArgumentException("邮箱不能为空"); } if (password == null || password.trim().isEmpty()) { throw new IllegalArgumentException("密码不能为空"); } this.name = name; this.email = email; this.password = password; } /** * 从字符串创建用户对象。 * *
字符串格式应为 "name,email,password"。 * * @param line 包含用户信息的字符串 * @return 解析成功的用户对象,如果解析失败则返回 null */ public static User fromString(String line) { if (line == null || line.trim().isEmpty()) { return null; } String[] parts = line.split(",", 3); // 最多分割成3部分 if (parts.length == 3) { return new User(parts[0].trim(), parts[1].trim(), parts[2].trim()); } return null; } /** * 获取用户名。 * * @return 用户名 */ public String getName() { return name; } /** * 获取用户密码。 * * @return 用户密码 */ public String getPassword() { return password; } /** * 获取用户当前的学习级别。 * * @return 用户学习级别 */ public String getLevel() { return level; } /** * 设置用户的学习级别。 * * @param newLevel 新的学习级别,支持"小学"、"初中"、"高中" */ public void setLevel(String newLevel) { level = newLevel; } /** * 获取用户邮箱。 * * @return 用户邮箱 */ public String getEmail() { return email; } /** * 返回用户信息的字符串表示。 * *
格式为 "name,email,password"。 * * @return 包含用户名、邮箱和密码的字符串 */ @Override public String toString() { return name + "," + email + "," + password; } }