Tho*_*rds 3 java string performance if-statement
我有一个简单的JFrame,有三个文本框:名字,姓氏和电子邮件地址.按下添加按钮后,详细信息将添加到阵列列表中.目前我有一组if语句来检查用户是否在文本框中输入了一些内容,如下所示:
private void addPersonButtonActionPerformed(java.awt.event.ActionEvent evt) {
String firstName = firstNameTextField.getText();
String lastName = lastNameTextField.getText();
String emailAddress = emailTextField.getText();
if (firstName.equals("")) {
System.out.println("First Name is missing");
} else if (lastName.equals("")) {
System.out.println("Last Name is missing");
} else if (emailAddress.equals("")) {
System.out.println("E-Mail address is missing");
} else if (!Email.isValid(emailAddress)) {
System.out.println("E-Mail address is invalid");
} else {
personArrayList.add(new Person(firstName, lastName, emailAddress));
System.out.println("Person added!");
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我发现if语句的长块会使代码难以阅读; 它也不会提醒用户多个文本字段为空.有更有效的方法吗?
提前致谢!
更高效?没有.
更具可读性?是的 - 不同种类的效率.
isValid()为每个字段或字段类型创建类似方法的内容.这些将包含简单的验证,如空白检查,正则表达式等,偶尔也包含其他特定于域的逻辑.
有很多方法可以分解和/或抽象这个功能,大致相当于:
private void addPersonButtonActionPerformed(java.awt.event.ActionEvent evt) {
String firstName = firstNameTextField.getText();
String lastName = lastNameTextField.getText();
String emailAddress = emailTextField.getText();
if ( isNameValid(firstName, "First name")
&& isNameValid(lastName, "Last name")
&& isEmailValid(emailAddress, "Email address")) {
personArrayList.add(new Person(firstName, lastName, emailAddress));
System.out.println("Person added!");
}
}
Run Code Online (Sandbox Code Playgroud)
我们的想法是保持主线代码干净简洁,符合您的个人风格,您正在使用的库等.除了自己编辑之外,还有现有的库来包装它.
如果您有许多这样的"表单",抽象表单本身及其验证可能是有意义的; 如果它只是那个,那么可能没有令人信服的理由进一步采取类似于上述的东西.
| 归档时间: |
|
| 查看次数: |
6903 次 |
| 最近记录: |