JAVA-Generika

Einführung

JAVA Generics wurde mit dem Aufkommen von . in die Sprache eingeführt JDK 5. Die Hauptidee hinter der Verallgemeinerung von Argumentlisten und Datentypen von Klassen, Schnittstellen und Zielen entstand aus der Tatsache, dass es sich um eine größere Inklusivität handelte. Entwickler müssten sich nicht mehr an nicht flexible Datentypen halten. Generische Klassen wichen Datenstrukturen wie HashSet, Anordnungsliste, HashMap, Liste usw.

Was ist eine JAVA-Generika-Klasse?

Eine generische Klasse in JAVA (oder eine generische Schnittstelle) kann man sich als eine Klasse vorstellen, bei der der Entwickler nicht den zu verarbeitenden Datentyp angeben muss. Diese Klassen ermöglichen die Datenmanipulation aller primitiven Typen, ohne einen Fehler der Typ-Nichtübereinstimmung zu geben.

Die Syntax zum Deklarieren einer generischen Klasse lautet: Klasse XYZ wobei T für den Typ steht, der in diesem Fall generisch ist.

Ein einfaches generisches JAVA-Klassenkonstrukt wäre wie folgt:

Klasse Probe { private T var; öffentlicher Leersatz (T var) { this.var = var; } public T get() { return var; }

 

Wenn Sie eine Instanz einer generischen Klasse erstellen möchten, können Sie die folgende Syntax verwenden:
Basistyp obj = neuer BaseType ();
Beachten Sie, dass Sie in der obigen Zeile keinen Primaten-Datentyp angeben können, während Sie eine generische Klasse instanziieren.

Einfacher Code mit einer JAVA Generics-Klasse

//In diesem folgenden Code werden wir nur zwei Zeilen mit zwei verschiedenen Datentypen ausdrucken. Klasse Beispiel //< > wird verwendet, um den Parametertyp anzugeben. T bedeutet eine generische Klasse. { T obj; //Constructor Sample (T obj) { this.obj = obj; } public T get() { //Methodenaufruf, um den Wert des Objekts abzurufen return this.obj; } class Body { public static void main (String [] args ) { //Wir erstellen jetzt zwei Objekte der generischen Klasse, aber mit unterschiedlichen Datentypen. Probe obj1 = neues Beispiel (20); Probe obj2 = neues Beispiel („Test erfolgreich“); System.out.println (obj1.get()); System.out.println (obj2.get()); } }

 

AUSGABE

20
Test erfolgreich

Generische Funktionen

Generische Funktionen haben wie generische Klassen keinen festen Datentyp. Diese Methoden können mit verschiedenen Argumentlisten aufgerufen werden. Die Liste passt sich dem übergebenen Argumenttyp an. Anhand des folgenden Beispiels wird die Theorie noch klarer.

class Sample { // Wir werden hier eine statische generische Methode erstellen. ' ' symbolisiert, dass die Methode //keinen angegebenen Rückgabetyp hat. statisch void genMethod (T-Variable) { //Damit Benutzer besser verstehen, welcher Datentyp ausgedruckt wird, ist diese Druckanweisung //unbedingt erforderlich. System.out.println (variable.getClass().getName() + „=“ + Variable); public static void main (String [] args) { //Wir rufen nun die generische Methode auf, indem wir einen Integer-Wert übergeben genMethod (5); // Wir rufen nun die generische Methode auf, indem wir einen String genMethod („Test erfolgreich“) übergeben; // Schließlich rufen wir die allgemeine Methode auf, indem wir einen doppelten Wert übergeben genMethod (9.0); } }

 

AUSGABE

java.lang.Ganzzahl = 5
java.lang.String = Test erfolgreich
java.lang.Double = 1.0

Generischer Konstruktor

Ein generischer Konstruktor initialisiert die Variablen in einer generischen Klasse. Es versteht sich von selbst, dass generische Konstruktoren nur in generischen Klassen verwendet werden können.

Es folgt ein Beispiel für einen generischen Konstruktor, der in einer generischen Klasse verwendet wird.

Klasse StudentRegistry { private T Student_ID ; private T Student_Roll ; private T-Klasse; //Unten ist der generische Konstruktor public StudentRegistry (T Student_ID, T Student_Roll, T Grade) { super (); this.Student_ID = Student_ID; this.Student_Roll = Student_Roll; this.Grade = Note; } }

 

Vorteil der Verwendung von Generika in JAVA

Einer der vielen Vorteile der Verwendung von Generika besteht darin, dass Sie Codes für jeden Datentyp wiederverwenden können. Außerdem generieren Generics eher Kompilierzeitfehler als Laufzeitfehler und sind daher zum Debuggen von Prozessen nützlich. Als Erweiterung des ersten Vorteils müssen Benutzer keine Cast-Variablen eingeben, da es keine vordefinierten primitiven Typen gibt.

Hinterlassen Sie eine Nachricht

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.