Tôi đang làm việc với một mật mã lớn và cần di chuyển một tệp từ gói này sang gói khác. Tuy nhiên, tôi không có toàn bộ codebase cục bộ, vì vậy tôi không chắc liệu tôi có tìm thấy và cập nhật mọi tham chiếu đến tệp gốc hay không. Để đảm bảo rằng tôi không phá vỡ bất cứ điều gì, tôi muốn để lại tập tin ban đầu, và chỉ đơn giản là có nó mở rộng các tập tin mới mà tôi tạo ra. Lý tưởng nhất, cả hai đều có cùng tên chính xác. Làm thêm giờ, tôi dự định sẽ ngừng sử dụng và xóa tệp cũ, nhưng hiện tại điều này có vẻ là giải pháp mạnh mẽ nhất. Tuy nhiên, tôi không thể tìm ra cách làm cho nó hoạt động trong Java.Có thể mở rộng một lớp Java với một tên có cùng tên
Đây là lớp mới:
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
}
}
Đây là lớp cũ mà mở rộng mới:
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
}
Thật không may, tôi nhận được lỗi:
MyServlet is already defined in this compilation unit
Đây có phải là có thể, hoặc tôi sẽ phải đưa ra một tên mới cho lớp cha mẹ.