全て、
使用しているライブラリのバグのため、特定のクラスを拡張するすべてのオブジェクトでdispose()メソッドをオーバーライドし、それをNO-OPにする必要があります。クラスの新しいインスタンスを直接作成している場合、これは簡単に実行できることを知っています。
layerManager = new LayerManagerLayer(wwd) {
@Override
public void dispose() {}
};
問題は、取得するオブジェクトインスタンスの多くが、クライアントコードによって直接構築されるのではなく、静的ライブラリメソッド呼び出しを介して作成されることです。
// Here I want to override the dispose method, but I cannot.
Layer l = ShapefileLoader.makeShapefileLayer(this.getClass().getResource("polylines10.shp"));
元のソースコードを変更せずに、静的に作成されたオブジェクトにdisposeメソッドを挿入する方法はありますか?