principal-ideales-dominio:
Quiero que mi constructor para lanzar una IllegalArgumentException
con 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);
}