Wenn Sie eine Schnittstelle in Java implementieren, gibt es nichts, was den Aufrufer daran hindern könnte, sich anzusehen, welche konkrete Implementierung Sie geliefert haben, indem Sie diese Klasse umwandeln und Methoden aufrufen, die nicht in der Schnittstelle sind. Ich glaube, das wird "böswilliges Downcasting" genannt.Automatische Generierung von Wrappern, um "bösartigen Downcast" zu verhindern?
Eine Möglichkeit, dies zu verhindern, besteht darin, einen Wrapper zu erstellen, der nur über die Methoden der Schnittstelle verfügt und die Implementierungsinstanz, an die er delegiert, nicht verfügbar macht. Abgesehen von Überlegungen zu privaten Variablen sollten Sie sicher sein.
Gibt es eine Möglichkeit, diese Art von Wrappern automatisch zu erstellen (zur Laufzeit, nicht mit einem Code-Erstellung Assistenten in der IDE, weil das immer noch eine Quelldatei erstellt, die gepflegt werden muss)?
Danke an Chris Jester-Young für seine Bearbeitung. Jetzt, wo wir Kommentare verbessern können, möchte ich auch Verbesserungen vornehmen ... – Thilo
Danke für dein Kompliment! Sehr geschätzt. –