Was ist Generika in Java? - Ein Leitfaden für Anfänger



Dieser Artikel über Generika in Java gibt einen kurzen Einblick in die Java-Generika und ihre verschiedenen Typen sowie Beispiele.

Stellen Sie sich ein Beispiel vor, in dem Sie eine Liste der Lebewesen an einem Ort erstellen müssen. Es spielt keine Rolle, ob es sich um einen Menschen, ein Tier oder eine Pflanze handelt. Alles was zählt ist ein Lebewesen. In diesem Fall würden Sie sie alle als „Lebewesen“ gruppieren und nicht kategorisieren. Wenn Sie einige Daten speichern müssen, ist für Sie der Inhalt und nicht der Datentyp von Bedeutung. Hier verwenden Sie Generika. Generika in ist eine Sprachfunktion, die die Verwendung generischer Typen und Methoden ermöglicht.

Unten finden Sie eine Liste der Themen, die ich in diesem Artikel behandeln werde:





Was ist Generika in Java?

Generika ist ein Begriff, der eine Reihe von Sprachmerkmalen bezeichnet, die sich auf die Definition und Verwendung generischer Typen und Methoden beziehen. Java Generische Methoden unterscheiden sich von regulären Datentypen und Methoden. Vor Generics haben wir das verwendet um irgendeine Art von Objekten zu speichern, d.h. nicht generisch . Jetzt erzwingen Generika die Programmierer zum Speichern eines bestimmten Objekttyps.

Nachdem Sie nun wissen, was Generics in Java ist, gehen wir weiter und verstehen, warum Sie Java Generics benötigen.



Warum Java Generics?

Wenn Sie sich die ansehen Klassen, dann werden Sie feststellen, dass die meisten Klassen Parameter / Argumente vom Typ Object nehmen. Grundsätzlich können sie in dieser Form jeden Java-Typ als Argument verwenden und dasselbe Objekt oder Argument zurückgeben. Sie sind im Wesentlichen heterogen nicht von einem ähnlichen Typ.

FrameworkHierarchy - Generika in Java - Edureka

Manchmal ist in der Java-Anwendung der Datentyp der Eingabe nicht festgelegt. Die Eingabe kann eine sein ganze Zahl zu schweben oder . Um den Eingang dem zuzuweisen Für den richtigen Datentyp mussten vorherige Überprüfungen durchgeführt werden. Beim herkömmlichen Ansatz wurde nach der Eingabe der Datentyp der Eingabe überprüft und dann der Variablen des richtigen Datentyps zugewiesen. Wenn diese Logik verwendet wurde, wurden die Länge des Codes und die Ausführungszeit erhöht. Um es zu umgehen, Generika wurden eingeführt . Wenn Sie Generics verwenden, werden die Parameter im Code zur Kompilierungszeit automatisch überprüft und der Datentyp wird standardmäßig festgelegt. Hier benötigen Sie also das Konzept der Generika in Java.



Nachdem Sie einige Einblicke in Generika erhalten haben, schauen wir uns die verschiedenen Möglichkeiten anGenerika können auf den Quellcode angewendet werden.

Arten von Java-Generika

Es gibt 4 verschiedene Möglichkeiten, wie Generika in Java angewendet werden können. Diese lauten wie folgt:

  1. Generische Typklasse
  2. Generische Schnittstelle
  3. Generische Methode
  4. Generischer Konstruktor

Lassen Sie uns nun verstehen, wie Generika eingehend auf Typklassen angewendet werden können.

1. Generische Typklasse

Eine Klasse wird als generisch bezeichnet, wenn sie eine oder mehrere Typvariablen deklariert. Diese Variablentypen werden als Typparameter der bezeichnet . Lassen Sie uns dies anhand eines Beispiels verstehen. Im folgenden Beispiel werde ich eine Klasse mit einer Eigenschaft erstellen x und Typ der Eigenschaft ist ein Objekt.

Klasse Genericclass {privates Objekt x public void set (Objekt x) {this.x = x} öffentliches Objekt get () {return x}}

Sobald Sie die Klasse mit einem bestimmten Typ initialisiert haben, sollte die Klasse nur mit diesem bestimmten Typ verwendet werden. Z.B. Wenn eine Instanz der Klasse den Wert enthalten soll x vom Typ „ String Dann sollte der Programmierer das einzige einstellen und bekommen Art. Da ich den Eigenschaftstyp für Object deklariert habe, gibt es keine Möglichkeit, diese Einschränkung durchzusetzen. Ein Programmierer kann jedes Objekt festlegen und von jedem Rückgabewerttyp erwarten Methode abrufen da alle Java-Typen Untertypen von sind Klasse.

Um diese Art von Einschränkung durchzusetzen, können wir Generika wie folgt verwenden:

Klasse Genericclass {// T steht für 'Type' private T x public void set (T x) {this.x = x} public T get () {return x}}

Jetzt können Sie sicher sein, dass die Klasse nicht mit falschen Typen missbraucht wird. Ein einfaches Beispiel für'' Genericclass ”Sieht wie folgt aus:

Genericclass instance = new Genericclass () instance.set ('Edureka') instance.set (10) // Dies führt zu einem Fehler bei der Kompilierung

So funktioniert es also. DiesAnalogie gilt auch für die Schnittstelle. Schauen wir uns schnell ein Beispiel an, um zu verstehen, wie generische Typinformationen in Java-Schnittstellen verwendet werden können.

2. Generische Schnittstelle

Ein bezieht sich auf die abstrakten Datentypen. Sie erlauben unabhängig von den Details ihrer Darstellung manipuliert werden. Außerdem bilden sie eine Hierarchie in Sprachen. Lassen Sie uns verstehen, wie generischer Typ auf Schnittstellen in Java angewendet werden kann.

// Generische Schnittstellendefinitionsschnittstelle GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // Eine Klasse, die die generische Schnittstellenklasse Genericclass implementiert, implementiert GenericInterface {public Integer PerformExecution (String x) {// Ausführungscode} public String ReverseExecution ( Ganzzahl x) {// Ausführungscode}}

Ich hoffe, Sie konnten verstehen, wie Generics auf Typklassen und Schnittstellen angewendet werden können. Lassen Sie uns nun tiefer in diesen Artikel eintauchen und verstehen, wie hilfreich er für Methoden und Konstruktoren ist.

wie man Atom für Python benutzt

3. Allgemeine Methoden

Generische Methoden sind generischen Klassen sehr ähnlich. Sie unterscheiden sich nur in einem Aspekt voneinander, dass die Umfangs- oder Typinformationen befinden sich nur innerhalb der Methode. Generische Methoden führen ihre eigenen Typparameter ein.

Lassen Sie uns dies anhand eines Beispiels verstehen. Im Folgenden finden Sie ein Beispiel für eine generische Methode, mit der alle Vorkommen von Typparametern in einer Liste von Variablen gefunden werden können.

public static int countAllOccurrences (T [] Liste, T Element) {int count = 0 if (Element == null) {für (T listElement: Liste) if (listElement == null) count ++} else {für (T listElement: Liste ) if (element.equals (listElement)) count ++} return count}

Wenn Sie eine Liste von übergeben String in dieser Methode zu suchen, wird es gut funktionieren. Wenn Sie jedoch versuchen, eine Zahl in der Liste der Zeichenfolgen zu finden, wird ein Fehler bei der Kompilierung angezeigt.

Diese Analogie ähnelt auch dem Konstruktor. Nehmen wir ein Beispiel für den generischen Konstruktor und verstehen, wie er funktioniert.

4. Generischer Konstruktor

Zum Erbauer ist ein Codeblock, der das neu erstellte Objekt initialisiert. EIN Baumeister ähnelt einer Instanzmethode in J. ava Dies ist jedoch keine Methode, da kein Rückgabetyp vorhanden ist. Der Konstruktor hat den gleichen Namen wie die Klasse und sieht in J so aus ava Code. Nehmen wir nun ein Beispiel und verstehen, wie es funktioniert.

Klasse Dimension {private T-Länge private T-Breite private T-Höhe // Generischer Konstruktor public Dimension (T-Länge, T-Breite, T-Höhe) {super () this.length = Länge this.width = width this.height = height}}

Im obigen Beispiel verfügt der Konstruktor der Dimensionsklasse über die Typinformationen. Sie können also eine Dimensionsinstanz mit allen Attributen eines einzigen Typs haben. Auf diese Weise können Sie Konstruktoren vom Typ Generics verwenden. Ich hoffe, Sie haben die Arten von Generika in Java verstanden.

Lassen Sie uns nun weiter gehen und die Vorteile von Generics in Java betrachten.

Vorteile von Generika in Java

1. Wiederverwendbarkeit des Codes

Unterschied zwischen Ansible und Koch

Sie können eine Strategie oder eine Klasse oder eine einmal und für jeden Typ oder jede Art und Weise verwenden, die Sie benötigen.

2. Individuelle Casting-Typen sind nicht erforderlich

Grundsätzlich haben Sie Informationen von wiederhergestellt Jedes Mal müssen Sie es typisieren. Typografie bei jeder Wiederherstellungsaufgabe ist eine schwere Migräne. Um diesen Ansatz zu beseitigen, wurden Generika eingeführt.

3. Implementierung eines nicht generischen Algorithmus

Es kann die Algorithmen berechnen, die für verschiedene Arten von Elementen funktionieren, die auch typsicher sind.

Das war alles über die Vorteile von Java Generics. Damit kommen wir zum Ende dieses Artikels über Generika in Java. Ich hoffe, Sie fanden es informativ und haben Ihnen geholfen, Java Generics zu verstehen.

Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Wir sind hier, um Ihnen bei jedem Schritt auf Ihrer Reise zu helfen. Neben diesen Fragen zu Java-Interviews erstellen wir einen Lehrplan, der für Studenten und Fachleute konzipiert ist, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für grundlegende als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring schulen.

Hast du eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieses „Generics in Java Artikel und wir werden uns so schnell wie möglich bei Ihnen melden.