亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢查數組是否不為空并且它的某些特定值是否為數字?

如何檢查數組是否不為空并且它的某些特定值是否為數字?

皈依舞 2022-07-06 17:00:31
我有兩個帶有一些參數的聲明數組。首先,我需要檢查數組是否不為空,然后檢查第一個數組的特定參數是否為數字?,F在我有兩個數組。其中一個具有所有參數,第二個具有必須為數字的參數(也包含在第一個數組中)我想在一個方法中進行這兩項檢查,因為我有兩個不同的方法。這就是我所擁有的/** Array con parametros no obligatorios   Array con los parametros obligatorios. */private static final String[] PARAMETROS_OBLIGATORIOS = new String[] {    "idFichero","nombreFichero","qnuOrdest","idHsc","timCamestad","codGrupoest","qnuOrdestRcvd"};/** Array con los parametros que deben ser numericos. */private static final String[] PARAMETROS_NUMERICOS = new String[] {    "idFichero","idHsc","qnuOrdest","qnuOrdestRcvd"};private void validarObligatorios(final JobParameters parameters) throws JobParametersInvalidException {    for (String nombre : PARAMETROS_OBLIGATORIOS) {        if (StringUtils.isBlank(parameters.getString(nombre))) {            String error ="El parametro " + nombre + " es obligatorio";             LOGGER.error(error);            throw new JobParametersInvalidException(error);        }    }}private void validarNumericos(final JobParameters parameters) throws JobParametersInvalidException {    for (String nombre : PARAMETROS_NUMERICOS) {        if (!StringUtils.isNumeric(parameters.getString(nombre))) {            String error = "El parametro " + nombre + " debe ser numerico";             LOGGER.error(error);            throw new JobParametersInvalidException(error);        }    }}我該怎么做才能以獨特的方法完成這兩個步驟?
查看完整描述

2 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

替換您的 2 種方法validarObligatorios并validarNumericas通過以下單個功能回答您的問題嗎?


private void validarObligatoriosYNumericos(final JobParameters parameters) throws JobParametersInvalidException {

    for (String nombre : PARAMETROS_OBLIGATORIOS) {

        if (StringUtils.isBlank(parameters.getString(nombre))) {

            String error ="El parametro " + nombre + " es obligatorio"; 

            LOGGER.error(error);

            throw new JobParametersInvalidException(error);

        }


    }


    for (String nombre : PARAMETROS_NUMERICOS) {

        if (!StringUtils.isNumeric(parameters.getString(nombre))) {

            String error = "El parametro " + nombre + " debe ser numerico"; 

            LOGGER.error(error);

            throw new JobParametersInvalidException(error);

        }

    }

}

!


查看完整回答
反對 回復 2022-07-06
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

將數值列數組復制到列表中并用于contains查看是否應檢查值。此解決方案假定數字列數組是強制列數組的子集,但看起來這是一個安全的假設。


private void validarObligatorios(final JobParameters parameters) throws JobParametersInvalidException {

    List<String> numericColumns = Arrays.asList(PARAMETROS_NUMERICOS );

    String error = null;

    for (String nombre : PARAMETROS_OBLIGATORIOS) {

        if (StringUtils.isBlank(parameters.getString(nombre))) {

            error ="El parametro " + nombre + " es obligatorio"; 

        } else if (numericColumns.contains(nombre) {

            if (!StringUtils.isNumeric(parameters.getString(nombre))) {

               error = "El parametro " + nombre + " debe ser numerico";                     

            }

        }

        if (error != null)  {

            LOGGER.error(error);

            throw new JobParametersInvalidException(error);                

        }

    }

}


查看完整回答
反對 回復 2022-07-06
  • 2 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號