Video: 025 Prolog: Grafos. Predicado camino (I) 2024
De soorten en inhoud van annotaties in Java, zoals opmerkingen, worden alleen beperkt door uw verbeeldingskracht. Ja, Java biedt een aantal vooraf gedefinieerde annotaties, maar je kunt ook annotaties maken die programma-elementen beschrijven zoals jij dat wilt. Het idee is dat u beschrijft hoe een annotatie zou moeten werken, er gegevens voor moet verschaffen en de compiler zorgt voor de rest.
Annotaties beginnen altijd met het @ (at) -symbool. Dus wanneer u @Documented ziet, weet u dat u een annotatie ziet. In de volgende secties leest u meer over vooraf gedefinieerde en aangepaste annotaties.
Een vooraf gedefinieerde annotatie is er een die bestaat als onderdeel van Java. Je vindt deze aantekeningen in de Java. Lang. annotatiepakket. Om ze te gebruiken, voeg je import java toe. Lang. annotatie. *; aan het begin van uw aanvraag. De volgende lijst biedt een overzicht van de vooraf gedefinieerde annotaties:
-
@Deprecated: soms is een -element - een klasse, methode, veld of andere programmeerfunctie - vervangen door een nieuwer element of is gewoon niet langer nodig zijn.
Wanneer dit gebeurt, markeert u het element als verouderd, zodat ontwikkelaars weten dat ze hun code moeten bijwerken en niet langer dat specifieke element moeten gebruiken. Het toevoegen van de @Deprecated annotatie levert de verouderde status van het element op in de documentatie gegenereerd door Javadoc (een hulpprogramma dat wordt gebruikt om automatisch documentatie te maken op basis van de inhoud van uw codebestanden).
-
@Documented: Telkens wanneer u een element markeert zoals gedocumenteerd, voert het hulpprogramma Javadoc het uit naar het documentatiebestand dat het maakt op basis van de inhoud van het bronbestand.
-
@FunctionalInterface: specificeert dat de interface een functionele interface is die wordt gebruikt voor anonieme klassen en lambda-expressies.
-
@ Inherited : Klassen kunnen kenmerken van een bovenliggende klasse overerven. Dit omvat standaard functies zoals methoden, maar bevat niet de annotaties van de bovenliggende klasse. Door de @ Inherited-annotatie te gebruiken, krijgt Java ook de annotaties van de bovenliggende klasse aan de subklasse.
-
@Override: geeft aan dat een element child-klasse een element superklasse (bovenliggende klasse) overschrijft. Als deze annotatie aanwezig is en de superklasse geen element met dezelfde naam bevat, geeft de compiler een foutmelding zodat u weet dat er iets mis is met de opheffing.
-
@Repeatable: de meeste annotaties worden slechts eenmaal op een bepaald element toegepast. In sommige gevallen moet u de annotatie echter meerdere keren toepassen. Deze annotatie vertelt Java dat het acceptabel is om de annotatie meer dan eens toe te passen op een bepaald element.
-
@Retentie: een annotatie kan alleen de broncode beïnvloeden; de broncode en compiler; of de broncode, compiler en JVM. Deze annotatie definieert welk effect een andere annotatie zou moeten hebben. U hebt bijvoorbeeld alleen een documentatie-specifieke annotatie nodig om de broncode en de compiler te beïnvloeden.
-
@SafeVarargs: het is mogelijk om bewerkingen uit te voeren die niet veilig zijn voor de argumenten die aan een methode of constructor zijn doorgegeven. Deze annotatie zegt dat de code niets onveiligs doet en daarom niet alle gebruikelijke controles vereist. Door het aantal controles te verminderen, loopt de toepassing sneller.
-
@SuppressWarnings: de Java-compiler geeft een schat aan waarschuwingen af om potentiële problemen aan te geven. Als u bijvoorbeeld een verouderde methode in uw code gebruikt, geeft de compiler daar een waarschuwingsbericht over uit. Deze annotatie geeft de compiler opdracht om geen dergelijke waarschuwingen voor het betreffende element uit te voeren.
-
@Target: wanneer u uw eigen annotaties maakt, kan het nuttig zijn om de compiler te vertellen dat deze annotaties alleen van toepassing zijn op een specifiek elementtype. Als u bijvoorbeeld een auteursblok maakt dat alleen op pakketniveau moet worden weergegeven, kunt u de annotatie beperken tot alleen dat elementtype met de @Target-annotatie.