Tous,Surcharger une méthode dans les objets créés statiquement
En raison d'un bogue dans une bibliothèque que je utilise, je dois passer outre la méthode Dispose() sur tous les objets étendant une certaine classe et en faire un NO- OP. Je sais que si je fais de nouvelles instances des classes directement, cela est facile à faire:
layerManager = new LayerManagerLayer(wwd) {
@Override
public void dispose() {}
};
Le problème est que beaucoup des instances d'objets que je reçois ne sont pas construits directement par mon code client, mais à la place sont créés via des appels de méthode de bibliothèque statique.
// Here I want to override the dispose method, but I cannot.
Layer l = ShapefileLoader.makeShapefileLayer(this.getClass().getResource("polylines10.shp"));
Est-il possible que je peux injecter ma méthode de cet objet dans Éliminez statiquement créé sans modifier le code source original?
* "Y a-t-il un moyen de [...] modifier le code source d'origine?" * - Leçon 1 - évitez d'utiliser des bibliothèques où vous n'avez pas au moins la possibilité de modifier le code source Bugs-stopper. –