有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何最小化输入异常

我有以下代码,可以很好地完成工作,但正如您所看到的,它非常冗长,可能会令人困惑:

private void addRecord() {
    String firstName = JOptionPane.showInputDialog("First Name: ");
    if (firstName.length() <= 0){
        JOptionPane.showMessageDialog(null, "That is not a valid input.","Input error",JOptionPane.ERROR_MESSAGE);
        addRecord();
    }//end if

    String lastName = JOptionPane.showInputDialog("Last Name: ");
    if (lastName.length() <= 0){
        JOptionPane.showMessageDialog(null, "That is not a valid input.","Input error",JOptionPane.ERROR_MESSAGE);
        addRecord();
    }//end if

    String a = JOptionPane.showInputDialog("Student Number: ");
    int studentNumber = Integer.parseInt(a);
    if (a.length() <= 0 || studentNumber == 0){
        JOptionPane.showMessageDialog(null, "That is not a valid input.","Input error",JOptionPane.ERROR_MESSAGE);
        sortMenu();
    }//end if

    String major = JOptionPane.showInputDialog("Major: ");
    if (major.length() <= 0){
        JOptionPane.showMessageDialog(null, "That is not a valid input.","Input error",JOptionPane.ERROR_MESSAGE);
        addRecord();
    }//end if

    String b = JOptionPane.showInputDialog("GPA: ");
    double gpa = Double.parseDouble(b);
    if (b.length() <= 0 || gpa > 4.0){
        JOptionPane.showMessageDialog(null, "That is not a valid input.","Input error",JOptionPane.ERROR_MESSAGE);
        sortMenu();
    }//end if

    tree.addNode(studentNumber, firstName, lastName, major, gpa);
}//end addRecord

有没有更好的方法,我可以写这个来检查每个输入,而不必每个输入都有if语句?我想尽量减少这种情况


共 (1) 个答案

  1. # 1 楼答案

    试试这个:

    private void checkString(String st, boolean or) {
        if (st.length() <= 0 || or){
            JOptionPane.showMessageDialog(null, "That is not a valid input.","Input error",JOptionPane.ERROR_MESSAGE);
            addRecord();
        }
    }
    private void addRecord() {
        String firstName = JOptionPane.showInputDialog("First Name: ");
        checkString(firstName, false);
    
        String lastName = JOptionPane.showInputDialog("Last Name: ");
        checkString(lastName, false);
    
        String a = JOptionPane.showInputDialog("Student Number: ");
        int studentNumber = Integer.parseInt(a);
        checkString(a, studentNumber == 0);
    
        String major = JOptionPane.showInputDialog("Major: ");
        checkString(major, false);
    
        String b = JOptionPane.showInputDialog("GPA: ");
        double gpa = Double.parseDouble(b);
        checkString(b, gpa > 4.0);
    
        tree.addNode(studentNumber, firstName, lastName, major, gpa);
    }
    

    额外条件包括or参数