私は途方もなく大きなコードベースで作業しており、あるパッケージから別のパッケージにファイルを移動する必要があります。ただし、コードベース全体をローカルに持っているわけではないため、元のファイルへのすべての参照を見つけて更新したかどうかはわかりません。何も壊さないようにするために、元のファイルを残して、作成した新しいファイルを単純に拡張したいと思います。理想的には、両方がまったく同じ名前である必要があります。時間の経過とともに、古いファイルを非推奨にして削除する予定ですが、今のところ、これが最も堅牢なソリューションのようです。ただし、Javaで動作させる方法がわかりません。
新しいクラスは次のとおりです。
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
}
}
新しいクラスを拡張する古いクラスは次のとおりです。
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
}
残念ながら、次のエラーが表示されます。
MyServlet is already defined in this compilation unit
これは可能ですか、それとも親クラスの新しい名前を考え出す必要がありますか?