Constructor deberá tirar IllegalArgumentException (es necesario comprobar antes de esto ())

principal-ideales-dominio:

Quiero que mi constructor para lanzar una IllegalArgumentExceptioncon un mensaje de error auto por escrito cuando se le llama con argumentos equivocados.

public Card(int top, int left, int right) {
    this(TOP.get(top) + 3 * LEFT.get(left) + 9 * RIGHT.get(right));
}

Argumentos erróneos significan que TOP.get(top)(resp. IZQUIERDA, DERECHA) es nulo desde la Map<Integer, Integer>no contiene tal elemento. El problema es que no puedo prueba para ese primer puesto this()no permite código antes.

Stefan:

Añadir un método de ayuda que los controles de la entrada para usted:

public Card(int top, int left, int right) {
    this(helper(top, left, right));
}

private static int helper(int top, int left, int right) {
    if (TOP.get(top) == null || LEFT.get(left) == null || RIGHT.get(right) == null)) {  
        throw new IllegalArgumentException();
    }
    return TOP.get(top) + 3 * LEFT.get(left) + 9 * RIGHT.get(right);
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=358053&siteId=1
Recomendado
Clasificación