Java - 具有相同参数的多个构造函数

Jåc*_*cob 5 java constructor arguments

我需要创建具有相同参数的多个构造函数,以便我可以从我的DAO类中调用这些构造函数来填充不同的下拉值

public static Employee empType(String empCode, String empType) {

    Employee emp = new Employee();
    emp .empCode= empCode;
    emp .empType= empType;
    return emp ;
}

 public static Employee empDept(String deptCode, String deptName) {

    Employee emp = new Employee();
    emp .deptCode= deptCode;
    emp .deptName= deptName;
    return emp ;
}
Run Code Online (Sandbox Code Playgroud)

当我从DAO类引用时,我如何引用这些构造函数?

例如

private static Employee myList(ResultSet resultSet) throws SQLException {
    return new <what should be here>((resultSet.getString("DB_NAME1")), 
                      (resultSet.getString("DB_NAME2")));
}
Run Code Online (Sandbox Code Playgroud)

Bob*_*der 8

你不能.而且,这些函数不是构造函数.你想如何决定调用哪个"构造函数"?

您可以合并两个函数:

public static Employee createEmp(String empCode, String empType, String deptName) {
    Employee emp = new Employee();
    emp .empCode= empCode;
    emp .empType= empType;
    emp .deptName= deptName;
    return emp ;
}
Run Code Online (Sandbox Code Playgroud)

null用作不需要的参数.


Kye*_*JmD 6

您不能使用相同的名称和相同的参数创建多个构造函数/方法

你可以做的是改变你的实现,而那些不是Contructors.

您可以按照Baraky的说法操作,也可以使用它(创建一个布尔标志或一个int值标志)

public Employee empType(String val1, String val2, int type) {

     Employee emp = new Employee();

    if(type == 1){
          emp .empCode= val1;
          emp .empType= val2;
    }else if(type ==2){
          emp.deptCode= val1;
          emp .deptName= val2;
     }
    return emp ;
}
Run Code Online (Sandbox Code Playgroud)