java - tengo para sobrescribir todas las versiones de la función sobrecargada en la herencia de clase?

Paflow:

Porque necesito un OutputStreamWriter cancelable, Identificación hizo la siguiente

public class CancelableStreamWriter extends OutputStreamWriter {

    public CancelableStreamWriter(OutputStream out, String charsetName) throws UnsupportedEncodingException {
        super(out, charsetName);
        //stuff
    }

    public CancelableStreamWriter(OutputStream out) {
        super(out);
        //stuff
    }

    public CancelableStreamWriter(OutputStream out, Charset cs) {
        super(out, cs);
        //stuff
    }

    public CancelableStreamWriter(OutputStream out, CharsetEncoder enc) {
        super(out, enc);
        //stuff
    }

    public void write(int c) throws IOException {
        if (myCancelCondition) {
            // cancel stuff
        }
        super.write(c);
    }

    public void write(char cbuf[], int off, int len) throws IOException {
        if (myCancelCondition) {
            // cancel stuff
        }
        super.write(cbuf, off, len);
    }

    public void write(String str, int off, int len) throws IOException {
        if (myCancelCondition) {
            // cancel stuff
        }
        super.write(str, off, len);
    }
}

Me pregunto, si es que realmente tiene que sobrescribir todas las versiones sobrecargadas de la función de escritura. ¿O hay algo posible, como:

    public void write(WHATEVERARGS) throws IOException {
        if (myCancelCondition) {
            // cancel stuff
        }
        super.write(WHATEVERARGS);
    }

Lo mismo con constrcutors.

Tal vez este no es el enfoque más elegante en absoluto, pero no se puede utilizar un objeto contenedor, por ejemplo, ya que la clase propietaria se escribe a OutputStreamWriter y no puedo cambiar eso.

El impulso de Fox:

Mantenga su enfoque.

Por desgracia, no es posible y no hay ningún atajo para anular todos los métodos (o "superior" todos los constructores). métodos y constructores de Java deben haber fijado los parámetros. Esto es debido al diseño del lenguaje.

Afortunadamente, la mayoría de los entornos de desarrollo compatibles con la generación de tales códigos en unos pocos clics. Sólo tienes que seleccionar que desea anular todos los métodos y constructores (y luego agregar su funcionalidad personalizada).

Supongo que te gusta

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