如何优化这种多个if条件相同,结果不同的代码

类似于这种

private CompanyFill check_fill(HttpServletRequest request) {
        String s = new String();
        CompanyFill cfill = new CompanyFill();
        cfill.setFillTime(request.getParameter("fillTime"));

        s = request.getParameter("id");
        if (s != null && Tools.isInteger(s))
            cfill.setId(Integer.parseInt(s));
        s = request.getParameter("enterpriceId");
        if (s != null && Tools.isInteger(s))
            cfill.setEnterpriceId(Integer.parseInt(s));
        s = request.getParameter("fillyear");
        if (s != null && Tools.isInteger(s))
            cfill.setFillyear(Integer.parseInt(s));
        s = request.getParameter("status");
        if (s != null && Tools.isInteger(s))
            cfill.setStatus(Integer.parseInt(s));

        s = request.getParameter("gdp");
        if (s != null && Tools.isNumeric(s))
            cfill.setGdp(Double.parseDouble(s));
        s = request.getParameter("daysOfWork");
        if (s != null && Tools.isNumeric(s))
            cfill.setDaysOfWork(Double.parseDouble(s));
        s = request.getParameter("hoursOfDay");
        if (s != null && Tools.isNumeric(s))
            cfill.setHoursOfDay(Double.parseDouble(s));
        s = request.getParameter("totalHour");
        if (s != null && Tools.isNumeric(s))
            cfill.setTotalHour(Double.parseDouble(s));
        s = request.getParameter("totalElec");
        if (s != null && Tools.isNumeric(s))
            cfill.setTotalElec(Double.parseDouble(s));
        return cfill;
    }

加一个这个方法,依次调用

/**
     * 
     * @param a 判断参数
     * @param b 标记 1 判断integer 2 判断数字
     * @return
     */
    public boolean isPass(String a,int b){
        switch (b) {
        case 1:
             if (a != null && Tools.isInteger(a))
                 return true;
        case 2:
             if (a != null && Tools.isNumeric(a))
                 return true;
        default:
            break;
        }
        return false;
    }

把s!=null提到外面

改switchcase见仁见智 我觉得没卵用