Ich möchte beschränken, dass eine Annotation nur auf Methoden angewendet wird, die eine andere Annotation haben. Zum Beispiel erlauben Sie nur @A
auf Methoden, die @B
hat. Ich sehe keine direkte Möglichkeit, dies mit dem Annotationstyp @Target
zu tun. Kann ich das irgendwie erreichen?Annotationsziel nur auf Methoden mit einer anderen Annotation beschränken
2
A
Antwort
0
Ich kenne keinen sprachdefinierten Mechanismus, der verwendet werden könnte, um die Platzierung einer Anmerkung zu verhindern, außer wenn eine andere Anmerkung vorhanden war. Java-Annotationen akzeptieren die Meta-Annotation @Target, mit der die Annotation auf bestimmte Orte beschränkt werden kann. Das scheint die nächste Sache zu sein, die getan werden kann.
Wie andere bemerkt haben, müssten Sie die Verarbeitung von Anmerkungen erweitern, um diese Funktion hinzuzufügen. Ich könnte mir vorstellen, dass Sie mit einer nicht zu geringen Menge an Arbeit diese Art von Erweiterung zu einer Entwicklungsumgebung wie Eclipse hinzufügen könnten.
Verwandte Themen
- 1. Auf nur englische Zeichen beschränken
- 2. Eindeutige ID Zugriff auf Methoden zu beschränken
- 3. Spring Annotation @Autowired Inside-Methoden
- 4. Meteor.loginWithPassword Nur auf Admin beschränken
- 5. Wie finde ich Methoden mit einer Annotation in einer Klasse?
- 6. Beschränken Sie Service-Methoden auf bestimmte Tageszeit
- 7. Wie kann ich den Zugriff auf Methoden beschränken und nur einer bestimmten Baugruppe Zugriff darauf gewähren?
- 8. Aspekt für mit Annotation annotierte Methode, die mit einer anderen Annotation versehen sind
- 9. @AspectJ Pointcut für alle Methoden einer Klasse mit spezifischer Annotation
- 10. Kann ich ein benutzerdefiniertes Attribut auf void-Methoden beschränken?
- 11. C#, ASP.NET - Beschränken des Zugriffs auf Controller-Methoden
- 12. Browser-Verbindungen auf nur 1 persistent beschränken
- 13. Nachrichten mit Pegel Diagnostic.Kind.NOTE (und anderen) auf Annotation Processors
- 14. Beschränken Squid Zugriff auf nur eine Website
- 15. usib-datepicker auf nur ein Jahr beschränken
- 16. Zugriff auf SQL Server-Anmeldung auf nur eine Datenbank beschränken
- 17. Wie zu beschränken NDepend Methoden Abfrage auf Typ Attribut
- 18. Ist es möglich, bestimmte ASMX-Web-Service-Methoden nur auf GET oder POST zu beschränken?
- 19. Nur eine Annotation zeigt
- 20. Wie Basisklassenmethode beschränken nur einmal
- 21. Oracle SQL Developer - Beschränken des Benutzers auf nur bestimmte Schemas
- 22. Kann ich die Rails-Controller-Methoden auf die Entwicklungsumgebung beschränken?
- 23. Emulieren Annotation Vererbung für Schnittstellen und Methoden mit AspectJ
- 24. Beschränken Sie die Berechtigung nur auf Feature-Zweig
- 25. Wie Zugriff auf Methoden in Java von anderen Methoden?
- 26. Was bedeutet @Transient-Annotation für Methoden?
- 27. Scrollen auf Fußzeile beschränken
- 28. Java - Anwendung Methoden aus einer anderen Klasse
- 29. Beschränken Sie den Serverzugriff nur von LAN
- 30. Umgang mit Ausnahme in anderen Methode mit anderen Methoden fangen
Haben Sie über eine Reflexion nachgedacht? –
@ pm-77-1 Ich kann diese Validierung zur Laufzeit mit Reflektion tun. Aber mit Absicht ist dies zur Kompilierzeit durchzusetzen. –
Können Sie die Absicht von '@ A' als Element von' @ B' einkapseln? Das erscheint sinnvoller, wenn diese miteinander gekoppelt werden sollen. Es sei denn, Sie haben keine Kontrolle über die Definition von '@ B'. –