Sto lavorando con un codebase ridicolmente grande e ho bisogno di spostare un file da un pacchetto a un altro. Tuttavia, non ho l'intero codice base localmente, quindi non sono sicuro di aver trovato e aggiornato ogni riferimento al file originale. Per assicurarmi di non rompere nulla, vorrei lasciare il file originale, e semplicemente farlo estendere il nuovo file che ho creato. Idealmente, avrebbero entrambi lo stesso identico nome. Overtime, ho intenzione di deprecare e rimuovere il vecchio file, ma per ora sembra la soluzione più solida. Tuttavia, non riesco a capire come farlo funzionare in Java.È possibile estendere una classe Java con una con lo stesso nome
Ecco la nuova classe:
package myproject.util.http;
import javax.servlet.http.HttpServlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public abstract class MyServlet extends HttpServlet
{
public void service (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// implementation of service
}
}
Ecco la vecchia classe che estende la nuova:
package myproject.util.net;
import myproject.util.http.MyServlet;
public abstract class MyServlet extends myproject.util.http.MyServlet
{
// this class was deprecated, use myproject.util.http.MyServlet instead
}
Purtroppo, ottengo l'errore:
MyServlet is already defined in this compilation unit
È questo possibile, o dovrò trovare un nuovo nome per la classe genitore.