Tengo un TextItem y quiero establecer un Validator para que verifique que la entrada sea SOLAMENTE un número entero.

TextItem textItem = new TextItem();
textItem.setValidator(myValidator)

¿Cómo debo crear mi myValidator para verificar esto? Tengo:

myValidatorcv = new CustomValidator() {

        @Override
        protected boolean condition(Object value) {
            if (Integer.parseInt(value);){
                return true;
            }else
                return false;
            }
        }
};

¿Es esa la mejor manera de hacer esto? ¿También necesito capturar la excepción de formato de número dentro del validador?

0
PhoonOne 17 feb. 2015 a las 20:42

2 respuestas

La mejor respuesta

¿Es esa la mejor manera de hacer esto?

Probablemente. Siempre que pueda aprovechar la capacidad incorporada del marco, suele ser un indicador de una buena solución. Hay quienes podrían decir que la programación impulsada por excepciones no es el mejor enfoque debido al costo de manejarlos, pero eso depende de usted.

¿También necesito capturar la excepción de formato de número dentro del validador?

Sí, así sabrás si falla o no.

myValidatorcv = new CustomValidator() {

        @Override
        protected boolean condition(Object value) {
            try {
                Integer.parseInt(value.toString());
                return true;
            } catch (NumberFormatException) {
                return false;
            }
        }
};

No estoy totalmente familiarizado con este marco, pero si puede utilizar genéricos para asegurarse de que el objeto que está validando sea un Integer o String en lugar de un Object, sería mejor .

1
Ryan J 17 feb. 2015 a las 17:54