Hola a todos
Estoy haciendo un programa en Java y me ha surgido el siguiente problema: necesito implementar una clase llamada MiArrayList, la cual debe de tener todos los metodos de ArrayList, pero, bajo ciertas condiciones, lanzar una excepción del tipo MiException (la cual extiende Exception).
Mi primera idea fue la de sobreescribir los métodos con el siguiente código (supongamos el método remove):
--------------
//La primera excepción la lanza el método de ArrayList y la segunda es la mía
public Object remove(int index) throws IndexOutOfBoundsException, MiException {
if (mi condicion)
throw new MiException("Error");
else
return super.remove(index);
}
----------------
Sin embargo, al compilar me da un error indicandome que el método remove sobreescribe un método (el remove de ArrayList) el cual no lanza MiException.
¿Hay alguna forma de hacer esto?
Pensando que la respuesta a la preguta anterior puede ser negativa he realizado una clase que no extiende a ArrayList, si no que tiene un atributo de este tipo y realiza sobre el las operaciones (para lo cual he tenido que implementar todos los metodos de ArrayList en mi clase). Sin embargo, el problema de esta solución radica en que, al no heredar de ArrayList, mi clase ya no es una Collection, por lo que a la hora de pasarla como parametro a metodos de otras clases no valdría.
¿Hay alguna otra forma de resolver el problema?
Gracias y un saludo