Java 如何优化代码以消除我的多个其他if条件?

Java 如何优化代码以消除我的多个其他if条件?,java,Java,这是我的DAOMPLE类::: 这里有两个下拉框,如 第一箱选项全部为池内、池外。 2ed框选项为全部、活动、非活动、冻结、巴里德、删除 您使用了多个if条件来检查multiple的值,而不是if elseif,这样,如果一个条件成功,它就不会检查下一个if条件。而且,为了避免这种混淆,最好使用SWITCH CASE station。如果您使用If语句和String.equals,请这样做:yes.equalspoolStatus-当poolStatus为null时,这不会崩溃为什么您要使用字符

这是我的DAOMPLE类:::

这里有两个下拉框,如 第一箱选项全部为池内、池外。 2ed框选项为全部、活动、非活动、冻结、巴里德、删除


您使用了多个if条件来检查multiple的值,而不是if elseif,这样,如果一个条件成功,它就不会检查下一个if条件。而且,为了避免这种混淆,最好使用SWITCH CASE station。

如果您使用If语句和String.equals,请这样做:yes.equalspoolStatus-当poolStatus为null时,这不会崩溃为什么您要使用字符串作为状态?考虑过使用类或枚举并在那里转移一些逻辑吗?
public class FleetDetailsDAOImpl22 extends CustomJdbcDaoSupport implements FleetDetailsDAO {

@Autowired
private DataManager dataManager;
/** This method is called for getting all the vessels. */

/**
 * @param vesselStatus
 * @param poolStatus
 * @param poolid
 */

@Override
public List<FleetDetails> getFleetDetails(String vesselStatus,
        String poolStatus, int poolid, String fromDate, String toDate)throws CustomException {

List<FleetDetails> fleetList =new ArrayList<FleetDetails>();
String poolStatusValue = null;
String vesselStatusValue = null;
String displayFlag = null;

/*---check for poolStatus---------*/
if(poolStatus.equals("yes")) {
    poolStatusValue = "Y";
} 
if(poolStatus.equals("no")) {
    poolStatusValue = "N";
}
if(poolStatus.equals("all")) {
    poolStatusValue = "ALL";
}
/*---check for vessel status---------*/

if(vesselStatus.equals("active")) {
    vesselStatusValue = "Y";
    displayFlag = "Y";
}
if(vesselStatus.equals("inactive")) {
    vesselStatusValue = "N";
    displayFlag = "Y";
}
if(vesselStatus.equals("frozen")) {
    vesselStatusValue = "F";
    displayFlag ="Y";
}
if(vesselStatus.equals("buried")) {
    vesselStatusValue = "B";
    displayFlag = "B";
}
if(vesselStatus.equals("pending")) {
    vesselStatusValue = "P";
    displayFlag = "P";
}
if(vesselStatus.equals("delete")) {
    vesselStatusValue = "D";
    displayFlag = "D";
}
if(vesselStatus.equals("all")){
    vesselStatusValue = "ALL";
}

try {

    if(poolStatusValue.equals("Y") && vesselStatusValue.equals("ALL") ){

        String fleetDetailsQuery = dataManager.getQuery("FLEET_DETAILS", Queries.QUERY_GET_FLEET_DETAILS_ALL_NONPOOL);
        Object[] params = new Object[] { poolid, poolStatusValue };
        fleetList = getJdbcTemplate().query(fleetDetailsQuery,params, new FleetDetails.FleetDetailsRowMapper());
    } 
    else if(poolStatusValue.equals("ALL") && vesselStatusValue.equals("ALL")) {
        String allVesselsQuiry = dataManager.getQuery("FLEET_DETAILS",Queries.QUERY_GET_POOL_NONPOOL_VESSELS);  
        Object[] params = new Object[] { poolid };
        fleetList = getJdbcTemplate().query(allVesselsQuiry,params, new FleetDetails.FleetDetailsRowMapper());
    } 
    else if(poolStatusValue.equals("N")){
        String nonpoolVesselsQuiry = dataManager.getQuery("FLEET_DETAILS", Queries.QUERY_GET_NONPOOL_VESSELS);
        Object[] params = new Object[] { poolid, vesselStatusValue,poolStatusValue, displayFlag };
        fleetList = getJdbcTemplate().query(nonpoolVesselsQuiry,params, new FleetDetails.FleetDetailsRowMapper());
    } 
    else if(poolStatusValue.equals("Y")){
        String fleetDetailsQuery = dataManager.getQuery("FLEET_DETAILS", Queries.QUERY_GET_FLEET_DETAILS);
        Object[] params = new Object[] { poolid, vesselStatusValue,poolStatusValue, displayFlag };
        fleetList = getJdbcTemplate().query(fleetDetailsQuery,params, new FleetDetails.FleetDetailsRowMapper());
    }
    else {
        String fleetDetailsQuery = dataManager
                .getQuery("FLEET_DETAILS",Queries.QUERY_GET_STATUS_VESSELS_FOR_BOTH_POOL_NONPOOL);
        Object[] params = new Object[] { poolid, vesselStatusValue,displayFlag };
        fleetList = getJdbcTemplate().query(fleetDetailsQuery,params, new FleetDetails.FleetDetailsRowMapper());
    }

} catch(Exception e) {
    e.getMessage();
}


    return fleetList;
}