suchen

Das @inherited in Java ist eine Annotation, die verwendet wird, um eine Annotation zu markieren, die an Unterklassen der annotierten Klasse vererbt werden soll. @inherited ist eine integrierte Annotation, da wir wissen, dass Annotationen wie ein Tag sind, der Metadaten darstellt, die dem Compiler zusätzliche Informationen liefern. Genauso wie integrierte Annotationen, die im Javadoc vorhanden sind, ist es möglich, eine weitere Meta-Annotation aus vorhandenen in Java zu erstellen. Tatsächlich gibt es zwei Arten von Annotationen: eine Art von Annotationen, die auf den Java-Code angewendet wird, wie z. B. @override, und eine andere Art von Annotationen, die auf die andere Annotation angewendet werden, wie z. B. @target @inherited. @inherited ist also eine Annotation, die auf andere Annotationen angewendet wird, deren Unterklassen wir erstellen oder die wir erben möchten, damit ein anderer Benutzer eine Annotation definiert.

WERBUNG Beliebter Kurs in dieser Kategorie JAVA MASTERY - Spezialisierung | 78 Kursreihe | 15 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Syntax

Die Syntax von @inherited in Java lautet –

@Inherited
public @interface MyAnnotation {// code of the MyAnnotation
}
@MyAnnotation
public class SuperClass {
// code of the SuperClass }
public class SubClass extends SuperClass { // code of the SubClass }

Wie in der obigen Syntax wird die Klasse SubClass von der Annotation @MyAnnotation geerbt, da sie von SuperClass geerbt wird und SuperClass eine @MyAnnotation-Annotation hat.

Wie funktioniert @Inherited in Java?

Die @Inherited-Annotation wird verwendet oder mit der Annotation versehen (MyAnnotation wie in der obigen Syntax), der die @interface vorangestellt werden sollte. Als nächstes kann diese Annotation (MyAnnotation) überall dort verwendet werden, wo sie als @MyAnnotation angewendet werden muss. Diese Annotationen können direkt vor der Deklaration eines Elements angewendet werden und können auf jedes Element des Programms wie Variablen, Klassen, Konstruktoren, Methoden usw. angewendet werden. Wenn diese benutzerdefinierte Annotation in der Oberklasse mit Annotationen versehen wird, wird sie automatisch an sie vererbt Unterklassen (Unterklasse wie in der obigen Syntax), wie wir in den folgenden Beispielen sehen können.

Beispiele zur Implementierung der @Inherited-Annotation in Java

Als nächstes schreiben wir den Java-Code, um die @Inherited-Annotation anhand des folgenden Beispiels besser zu verstehen, in dem wir die @Inherited-Annotation verwenden, um in der Unterklasse von der Oberklasse zu erben, wie unten –

Beispiel #1

Zuerst erstellen wir eine Schnittstelle für die Annotation @MyAnnotation, die zwei Felder enthält: Name und Code.

Code: //MyAnnotation.java

package demo;
import java.lang.annotation.Inherited;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Inherited
@Target ({ElementType.TYPE, ElementType.METHOD})
@Retention (RetentionPolicy.RUNTIME)
public @interface MyAnnotation
{
String name () default "unknown";
String code () default " ";
}

Als nächstes erstellen wir eine Superklasse, um die obige Annotation zu verwenden, indem wir eine beliebige Klasse, Methode oder Variable mit Annotationen versehen und den Statusnamen und den Statuscode bereitstellen.

Code: //Super.java

package demo;
import demo.MyAnnotation;
@MyAnnotation (name = "Karnataka", code = "KA")
public class Super
{
public String getstateinfo ()
{
return null;
}
}

Als nächstes verwenden wir eine Anmerkung, da es sich um Metadaten handelt, was bedeutet, dass wir in der Lage sein sollten, diese Metadaten oder Informationen abzurufen, um die Anmerkungsinformationen zu verwenden, wenn wir sie benötigen.

Code: //Demo.java

//as sub class
package demo;
import demo.MyAnnotation;
import demo.Super;
import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Method;
public class Demo extends Super
{
public static void main ( String[] arg ) throws Exception
{
new Super ();
Class <super>obj = Super.class;
getstateinfo (obj);
Method m = obj.getMethod ("getstateinfo", new Class[]{});
getstateinfo (m);
}
static void getstateinfo (AnnotatedElement e)
{
try
{
System.out.println ("Finding annotations on " + e.getClass ().getName ());
Annotation[] annotations = e.getAnnotations ();
for (Annotation a : annotations)
{
if (a instanceof MyAnnotation)
{
MyAnnotation stateInfo = (MyAnnotation) a;
System.out.println("Name of Annotation :" + stateInfo.annotationType ());
System.out.println("State Name :" + stateInfo.name ());
System.out.println("State code :" + stateInfo.code ());
System.out.println(new Demo ().getClass ().getAnnotation (MyAnnotation.class));
System.out.println(new Super ().getClass ().getAnnotation (MyAnnotation.class));
}
}
} catch (Exception ex)
{
System.out.println( ex );
}
}
}</super>

Ausgabe: Wenn wir die Demo.java-Klasse ausführen, ist die Ausgabe.

Java @Inherited

Erklärung: Wie im obigen Code wird die MyAnnotation-Annotation erstellt und auch von @Inherited mit Anmerkungen versehen. In der Superklasse wurde die MyAnnotation-Annotation durch die Anweisung @MyAnnotation verwendet und der Klasse mit Anmerkungen versehen. Und es wird eine weitere Klasse Demo erstellt, die die Unterklasse der Superklasse ist, da sie zur Superklasse erweitert wird. Weiter in der main()-Methode der Demo-Klasse erstellt ein Objekt der Superklasse seine Methode getstateinfo() und greift darauf zu. Durch diese Methode iteriert es alle seine Anmerkungen und prüft, ob die Anmerkung in MyAnnotation enthalten ist. Wenn ja, werden einige gedruckt der Informationen, wie wir oben sehen können. Aber eine wichtige Sache ist, dass die Demo-Klasse oder eines ihrer Elemente nicht mit MyAnnotation versehen ist, aber dennoch zeigt, dass MyAnnotation dieser Klasse mit Anmerkungen versehen ist, da sie der Superklasse inhärent ist und die Superklasse von MyAnnotation geerbt wird.

Als nächstes schreiben wir den obigen Java-Code um, um die @Inherited-Annotation anhand des folgenden Beispiels besser zu verstehen. Dabei verwenden wir die @Inherited-Annotation nicht für die Annotation MyAnnotation (wie im obigen Beispiel erstellte Annotation), um zu überprüfen, ob diese Annotation vererbt wird in der Unterklasse seiner Oberklasse oder nicht, wie unten –

Beispiel #2

Wir werden die Klassen Super.java und Demo.java wie oben beibehalten und keine Änderungen an diesen Klassen vornehmen, aber in der Klasse MyAnnotation.java nehmen wir kaum Änderungen vor, wir entfernen lediglich die Annotation @Inherited, die mit Anmerkungen versehen werden soll, aus MyAnnotation. wie wir unten sehen können –

Code: //MyAnnotation.java

package demo;
import java.lang.annotation.Inherited;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
// no @Inherited
@Target ({ElementType.TYPE, ElementType.METHOD})
@Retention (RetentionPolicy.RUNTIME)
public @interface MyAnnotation
{
String name () default "unknown";
String code () default " ";
}

Ausgabe: Als nächstes, wenn wir die Demo.java-Klasse ausführen, ist die Ausgabe.

Java @Inherited

Erklärung: Wie in der obigen Ausgabe können wir sehen, dass nach dem Statuscode der „Null“-Wert gedruckt wird, das ist der Rückgabewert der Anweisung „new  Demo ().getClass () .getAnnotation (MyAnnotation.class)“, was bedeutet, dass die Demo-Klasse keine MyAnnotation-Annotation von ihrer Superklasse geerbt (oder annotiert) hat, da die @Inherited-Annotation nicht an MyAnnotation annotiert ist, um sie in der Unterklasse zu erben.

Fazit

Das @inherited in Java ist eine integrierte Annotation, die auf eine andere Annotation angewendet wird. Es wird verwendet, um eine Annotation zu markieren, die an Unterklassen der annotierten Klasse vererbt werden soll. Das @inherited ist im Paket java.lang.annotation.Inherited.

verfügbar

Das obige ist der detaillierte Inhalt vonJava @Inherited. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Mar 17, 2025 pm 05:46 PM

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Mar 17, 2025 pm 05:45 PM

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Mar 17, 2025 pm 05:44 PM

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Mar 17, 2025 pm 05:43 PM

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Mar 17, 2025 pm 05:35 PM

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung