Java Method with Enforced Array Size Parameters?

前端 未结 3 1080
闹比i
闹比i 2020-12-10 16:23

I would like to create an initialisation method for a Java class that accepts 3 parameters:

Employee[] method( String[] employeeNames, Integer[] employeeAges         


        
3条回答
  •  温柔的废话
    2020-12-10 17:13

    A way to skirt around the problem is to create a builder, e.g., EmployeeArrayBuilder,

    public class EmployeeArrayBuilder {
       private Integer arraySize = null;
       private String[] employeeNames;
       public EmployeeArrayBuilder addName(String[] employeeNames) {
          if (arraySize == null) {
             arraySize = employeeNames.length;
          } else if (arraySize != employeeNames.length) {
             throw new IllegalArgumentException("employeeNames needs to be " + arraySize + " in length");
          }
          this.employeeNames = employeeNames;
          return this;
       }
       public EmployeeArrayBuilder addSalaries(float[] employeeSalaries) {/* similar to above */}
       public EmployeeArrayBuilder addAges(Integer[] employeeAges) {/* similar  */}
       public Employee[] build() {
           // here, you can do what you needed to do in the constructor in question, and be sure that the members are correctly sized.
           Employee myEmployees[] = new Employee[arraySize ];// dont know what size is            
           for ( int count = 0; count < arraySize ; count++) {
                myEmployees[count] = new Employee( employeeNames[count], employeeAges[count], employeeSalaries[count] );
           }
           return myEmployees;
       }
    }
    

提交回复
热议问题