Ein Java-Benutzer hat vor über einem Dutzend Jahren versucht, die Funktionen von Java8 (Generics) zu untersuchen.

Einführung

Vor kurzem hatte ich aufgrund meiner Arbeit die Möglichkeit, Java zu verwenden. Ich habe mein altes Java (1.3) Wissen aktualisiert.

Was ist Generika?

Diese Funktion bestimmt die Verarbeitung des Typs, der zum Zeitpunkt der Implementierung verwendet werden soll.

Das allein ist erfrischend, deshalb möchte ich es anhand eines Beispiels erklären.

Vergleichen Sie mit / ohne Generika nach Code

Code um Java 1.3

List list = new ArrayList();

//Werte in Liste speichern
// String ->Da es in Object konvertiert wird, kann es implizit gespeichert werden.
list.add("1");
list.add("2");
list.add("3");

for (Iterator it = list.iterator(); it.hasNext(); ) {
	//Ruft den Wert der Liste ab und zeigt ihn an
	//Objekt zum Zeitpunkt des Erwerbs->String benötigt eine explizite Besetzung
	String str = (String) it.next();
	System.out.println(str);
}

Java 8-Code

//Bereiten Sie eine ArrayList vor, die den String-Typ verwendet
List<String> list = new ArrayList<String>();
// List<String> list = new ArrayList<>(); //Da der Typ beim Deklarieren der Variablen beim Erstellen einer Instanz festgelegt ist<>Kann ausgelassen werden


//Werte in Liste speichern
//String kann so wie er ist gespeichert werden
list.add("1");
list.add("2");
list.add("3");

for (Iterator<String> it = list.iterator(); it.hasNext(); ) {
	//Ruft den Wert der Liste ab und zeigt ihn an
	//Keine Notwendigkeit zu werfen, da es mit String erhalten werden kann
	String str = it.next();
	System.out.println(str);
}

Was ist gut zu benutzen?

In Java1.3 bei Verwendung von Sammlungen Ich musste es als Objekttyp speichern. Beim Extrahieren handelt es sich natürlich auch um einen Objekttyp, daher musste ich ihn entsprechend dem verwendeten Typ umwandeln.

Der Songwriter ist zu besetzen, wenn dies herausgenommen wird Wenn Sie den falschen Typ speichern, erhalten Sie eine ClassCastException. Natürlich ist es eine Ausnahme, sodass Sie den Fehler erst bemerken, wenn Sie ihn ausführen.

Wenn Sie dagegen Generics verwenden, können Sie den Typ zum Zeitpunkt der Implementierung bestimmen. Falscher Typ zum Speichern = Kompilierungsfehler aufgetreten Es ist auch eine Funktion, die hilft, einfache Fehler zu reduzieren.

Recommended Posts

Ein Java-Benutzer hat vor über einem Dutzend Jahren versucht, die Funktionen von Java8 (Generics) zu untersuchen.
Ein Java-Benutzer hat vor einem Dutzend Jahren versucht, die Funktionen von Java8 (Lambda Style Edition) zu untersuchen.
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Ich habe einen RESAS-API-Client in Java erstellt
Vom jungen Java (3 Jahre) bis zu Node.js (4 Jahre). Und der Eindruck, nach Java zurückzukehren
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
Ein kurzer Rückblick auf Java in den letzten fünf Jahren
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
So finden Sie heraus, welche Java-Version der Klassendatei kompiliert wurde
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
Ausgabe des Buches "Einführung in Java"
Was ich versucht habe, als ich alle Felder einer Bohne bekommen wollte
So erhalten Sie die ID eines Benutzers, der sich in Swift bei Firebase authentifiziert hat
Überprüfen Sie das ID-Token eines von AWS Cognito in Java authentifizierten Benutzers
[Kleine Geschichte] Ich habe versucht, die Java-ArrayList etwas komfortabler zu gestalten
Machen Sie einen Rand links vom TextField
Java Ich habe versucht, einen einfachen Block zu brechen
Messen Sie die Größe eines Ordners mit Java
Ich habe versucht, eine Website für das Studium von DUO3.0 zu entwickeln.
Stellen Sie die Zeit von LocalDateTime auf eine bestimmte Zeit ein
Ich habe versucht, den Block mit Java zu brechen (1)
Ich habe versucht, ein Tool zum Vergleichen von Amazon-Produktpreisen auf der ganzen Welt mit Java, der Amazon Product Advertising API und der Currency API (29.01.2017) zu erstellen.
Java Willkommen im Sumpf der zweidimensionalen Arrays
[Java] So erhalten Sie die URL der Übergangsquelle
Wie schreibe ich Scala aus der Perspektive von Java
05. Ich habe versucht, die Quelle von Spring Boot zu löschen
Ich habe versucht, die Kapazität von Spring Boot zu reduzieren
[Java] So erhalten Sie den Maximalwert von HashMap
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
[Java] Beim Schreiben der Quelle ... Memorandum ①
Java: Verwenden Sie Stream, um den Inhalt einer Sammlung zu sortieren
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
Eine Übersicht über das native Java-Framework Quarkus von Kubernetes
Ich habe mir die Rosen von Versailles angesehen und versucht, das Schlusslied in Java zu reproduzieren
Werfen wir einen Blick auf die Funktionen der Keycloak-Verwaltungskonsole (User Edition), dem Benutzerkontodienst
In Anbetracht der Einführung der Java-Sprache in der Reiwa-Ära ~ Auswahl eines sicheren SDK
Ich habe versucht, die Beispielanwendung gemäß der Idee des Buches "Micro Service Architecture" in einen Mikrodienst zu verwandeln.
[Java] Ich habe versucht, ein Janken-Spiel zu erstellen, das Anfänger auf der Konsole ausführen können