Ich möchte einige einfache Wrapper-Klassen für eine vorhandene Klassenbibliothek erstellen. Um die Syntax lesefreundlich zu machen UND (über Code-Vervollständigung) zu raten, möchte ich die Methoden von java.lang.Object entfernen.
Das Problem ist, dass alle nicht-atomaren Dinge in Java von Object geerbt werden und somit diese Methoden haben. Ich habe bereits versucht, die Wrapper-Syntax über Enums und Interfaces ohne Erfolg zu erstellen; da enums und schnittstellen auch java.lang.Objects sind.
java.lang.Object hat neun Methoden, die ich nicht in der Code-Vervollständigung meiner Schnittstellen sehen möchte. Hier ist, was ich entfernen möchte (rot) und was ich behalten möchte (grün):
alt text http://ju.venile.de/upload/java-lang-object -methods.png
Hier ist ein Beispielcode, um nette Wrapper um bestehende Klassen (Builder-Muster) zu erstellen:
%Vor%Die Verwendung des neuen Wrapper-Codes sollte wie folgt aussehen:
%Vor% Wenn Sie alle this
-Anweisungen des Builders an eine Schnittstelle übergeben, wird die Sichtbarkeit der Methode reduziert, z. wenn der Builder mehr als eine Schnittstelle implementiert. Alle java.lang.Object Methoden bleiben leider erhalten.
Wenn dieses Verstecken von Methoden in Java möglich wäre (vielleicht mit Anmerkungen?), könnte ich eine nette Bibliothek erstellen, die IDE-unabhängig ist (nette Code-Vervollständigung überall). Wenn nicht, dann gibt es zumindest für die Eclipse-IDE (vielleicht ein Plugin?) Einen Trick, der die java.lang.Object-Methode zum Verbergen bereitstellen kann.
Für Eclipse 3.4 können Sie zumindest Folgendes tun:
1) Gehe zu Einstellungen - & gt; Java - & gt; Aussehen - & gt; Geben Sie Filter ein
2) Klicken Sie auf Hinzufügen und geben Sie java.lang.Object
Nun werden die Methoden, die direkt von java.lang.Object
übernommen wurden, im Code-Assist verschwinden.
Tags und Links java syntax syntactic-sugar