All,Trọng một phương pháp trong các đối tượng tĩnh tạo
Do một lỗi trong một thư viện Tôi đang sử dụng, tôi cần phải ghi đè lên các phương pháp xử lý() trên tất cả các đối tượng mở rộng một lớp nào đó và làm cho nó một không- OP. Tôi biết rằng nếu tôi làm cho trường hợp mới của các lớp học trực tiếp, điều này rất dễ dàng để làm:
layerManager = new LayerManagerLayer(wwd) {
@Override
public void dispose() {}
};
Vấn đề là rất nhiều các trường hợp đối tượng tôi nhận được không được xây dựng trực tiếp bằng mã khách hàng của tôi, nhưng thay vào đó được tạo thông qua các cuộc gọi phương thức thư viện tĩnh.
// Here I want to override the dispose method, but I cannot.
Layer l = ShapefileLoader.makeShapefileLayer(this.getClass().getResource("polylines10.shp"));
Có cách nào tôi có thể tiêm phương pháp xử lý của tôi vào mà đối tượng tĩnh tạo ra mà không sửa đổi các mã nguồn gốc?
* "Có cách nào tôi có thể [...] mà không sửa đổi mã nguồn gốc không?" * - Bài họC# 1 - tránh sử dụng thư viện mà bạn không ít nhất có tùy chọn sửa đổi mã nguồn để sửa chương trình lỗi cửa hàng. –