public class Person {
private String name;
private String email;
private String password;
public Person(String name, String email, String password) {
setName(name);
setEmail(email);
setPassword(password);
}
public void setName(String name) {
if (name == null || name.isEmpty()) {
throw new IllegalArgumentException("Invalid name");
}
this.name = name;
}
public void setEmail(String email) {
/* Validate email, throw exception */
this.email = email;
}
public void setPassword(String password) {
/* Validate password, throw exception */
this.password = password;
}
}
验证电子邮件,地址,密码的最佳方式(例如,8个字符,至少一个大写字符,一个数字,...)并在必要时抛出异常。 我用名字做的方式一样吗?
Netbeans 有关在构造函数中使用setter的投诉? 如果我不愿意直接分配值(this.name = name),我需要验证输入两次(构造函数中的一个和setter中的一个)。
答案 0 :(得分:0)
密码复杂性验证可能会像您想要的那样复杂,您可以自己轻松地完成此操作。
答案 1 :(得分:0)
要在构造函数中调用setter,您应该更改这些函数的范围,并将它们放在private
而不是public
。如果你考虑这一点,那不是一个非常糟糕的主意,因为你的检查器功能不应该在这个类之外调用。