Function<T,R> R apply(T t); predicate 代码格式化

 

/**
     * @param innerCode
     * @return
     */
    private String getValue1(int innerCode,Function<FP_BasicInfoRow, String> params) {
        SecuMainAllRow secuMainAllRow = SecuMainAll.of().enumrator().getRowByInnerCode(innerCode);
        if(secuMainAllRow!=null){
            FP_BasicInfoRow fp_BasicInfoRow = FP_BasicInfo.of().enumrator().getRowByFinProCode(secuMainAllRow.getGilCode());
            if(fp_BasicInfoRow!=null){
                FP_IndicatorRow fp_IndicatorRow = FP_Indicator.of().enumrator().getRowByGilCode(params.apply(fp_BasicInfoRow));
                if(fp_IndicatorRow!=null){
                    return fp_IndicatorRow.getChiName();
                }
            }
        }
        return SVALUE;
    }

 

    @ApiInfo(Name="BFP_INFO_SUBUNIT",Code={"41187"},ZhDescription="认购本金币种",ResultType=EFieldType.STRING,ApiType=APIType.Bank)
    @APIParam(ZhName="内部编码",EnName="InnerCode",ParamType=EFieldType.INT,Required=true,Info="内部编码")
    public String getBFP_INFO_SUBUNIT(int innerCode){
        return getValue1(innerCode,FP_BasicInfoRow::getCurrencyUnit);
    }

 

 

------------------------------或者-------------------------------------

 

    /**
     * GilCode=952001.XH
     * @param innerCode=4012822
     * @return
     */
    @ApiInfo(Name="AFP_INFO_ABBR",Code={"41484"},ZhDescription="产品简称",ResultType=EFieldType.STRING,ApiType=APIType.Asset)
    @APIParam(ZhName="证券内部编码",EnName="InnerCode",ParamType=EFieldType.INT,Required=true,Info="证券内部编码")
    public String getAFP_INFO_ABBR(int innerCode) {
        String value = getFpSecuMainValue(innerCode,FP_SecuMainRow::getSecuAbbr);
        return FuncUtils.ISNULL(value, INVALID_STRING);
    }

 

1     //调用第一步,函数式接口前面的inndecode是业务逻辑,取得fin=gilcode的数据然后返回result 通过innercode获取gilcode
2     private <R> R getFpSecuMainValue(int innerCode, Function<FP_SecuMainRow, R> function) {
3         FP_SecuMainRow fpSecuMainRow = getFpSecuMain(innerCode);
4         if (fpSecuMainRow != null) {
5             return function.apply(fpSecuMainRow);
6         }else {
7             return null;
8         }
9     }

-------------------------------------用两个函数式接口

 

 

 ----------------------------------------------------------------------predicate------------------

 

 

 

posted @ 2023-06-20 10:14  lamda表达式先驱  阅读(32)  评论(0)    收藏  举报