我在 Java 中创建了一个允许我“检查”几个的方法JTextFields
,这个想法是用户输入他的个人数据(姓名、姓氏、电子邮件、密码等)
并且这种方法可以让我检查JTextfields
它们是否不NULL
正确,电子邮件的格式是否正确,最后密码是否正确NULL
。
public boolean checkRegistrationData(ArrayList<JTextField> jTxts, JPasswordField pass, JTextField theEmail) {
if (isJtextNotNull(jTxts) && isJPasswordNotNull(pass) && isValidEmailAddress(theEmail)) {
JOptionPane.showMessageDialog(null, "A confirmation Code has been sent to your Email adress");
return true;
} else if (isJtextNotNull(jTxts) && !isJPasswordNotNull(pass) && isValidEmailAddress(theEmail)) {
JOptionPane.showMessageDialog(null, "The password field is empty");
return false;
} else if (isJtextNotNull(jTxts) && isJPasswordNotNull(pass) && !isValidEmailAddress(theEmail)) {
JOptionPane.showMessageDialog(null, "The email address is not valid");
return false;
}
else {
JOptionPane.showMessageDialog(null, "Some data is empty");
return false;
}
}
它ArrayList<JTextField> jTxts
是大多数带有用户数据的 JTextField 被“存储”的地方。
有什么办法可以改进这种方法吗?使用switch会更好吗?
为了避免为每种类型的错误显示一条消息,这对用户来说可能很麻烦,您可以在列表的帮助下对所有错误进行分组。那是:
✍ 代码
✍ 退出
通过这种方式,您可以显示输入数据中存在的所有错误,并且用户有机会一次更正所有错误。
一种常见的模式(Guard 子句/ Early exit)是在方法的开头检查参数是否有效,如果不是则退出方法。这样,该方法的真正目标就与之前的验证分离了。使用该模式,该方法将如下所示:
switch
评估同一表达式的不同结果会很有用。开关总是比 if、elseif...else 的串联更有效。但在您的情况下,您评估 4 个不同的表达式:我认为在这种情况下使用 switch 没有多大意义,除非您使用额外的变量,例如form_state,并且它的值对应于表单的每个可能状态。