Heim Java javaLernprogramm Der Unterschied zwischen T und Fragezeichen (Platzhalter) in Java-Generika

Der Unterschied zwischen T und Fragezeichen (Platzhalter) in Java-Generika

Dec 19, 2016 pm 03:43 PM
泛型

Typen, die ursprünglich enthalten waren: einfache Typen und komplexe Typen. Komplexe Typen sind jetzt in zwei verschiedene Typen unterteilt Vererbungsbeziehung;

Die Vorteile von Generika sind:

Startversion

Generische Version
 public void write(Integer i, Integer[] ia);  public void write(Double  d, Double[] da);
Nach dem Login kopieren

Vereinfachter Code
 public <T> void write(T t, T[] ta);
Nach dem Login kopieren

Definieren Sie Generika

1. Definieren Sie nach der Klasse

Folgen Sie dem Klassennamen

Definieren Sie Generika T, S und S erbt T
 public class TestClassDefine<T, S extends T>{}
Nach dem Login kopieren

2. Definieren Sie nach dem Methodendekorator

Unmittelbar nach dem Modifikator (öffentlich)

Definieren Sie generisches T, S und S erbt T
 public <T, S extends T> T testGenericMethodDefine(T t, S s){}
Nach dem Login kopieren

Instanziieren Sie generische Elemente

1. Instanziieren Sie ein für eine Klasse definiertes Generikum.

Bei der ersten Deklaration oder Instanziierung einer Klassenvariablen. Zum Beispiel

zweite geerbte Klasse oder bei der Implementierung einer Schnittstelle. Zum Beispiel
    List<String> list;     list = new ArrayList<String>;
Nach dem Login kopieren

2. Generics zu Instanziierungsdefinitionsmethoden
public class MyList<E> extends ArrayList<E> implements List<E> {...}
Nach dem Login kopieren

Beim Aufruf einer generischen Methode führt der Compiler automatisch eine Zuweisung durch, wenn die Zuweisung nicht erfolgreich sein kann, a Es wird ein Kompilierungsfehler gemeldet.

Platzhalter (?)

Bei der Zuweisung gibt es Definitionen und Zuweisungen. Im obigen Abschnitt wird angegeben, dass alle Zuweisungen ein spezifischer Typ sind ist unsicher, wir verwenden stattdessen Platzhalter (?):

wie

Im Java-Sammlungsframework kann eine Klasse für Container, deren Parameterwerte unbekannten Typs sind, nur lesen seine Elemente, kann ihm aber keine Elemente hinzufügen, da sein Typ unbekannt ist, kann der Compiler nicht erkennen, ob der Typ des hinzugefügten Elements mit dem Typ des Containers kompatibel ist. Die einzige Ausnahme ist NULL
List<?> unknownList;  List<? extends Number> unknownNumberList;  
List<? super Integer> unknownBaseLineIntgerList;
Nach dem Login kopieren


Weitere Artikel zum Unterschied zwischen T und Fragezeichen (Platzhalter) in Java-Generika finden Sie auf der chinesischen PHP-Website!

Erklärung dieser Website
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

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)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Lösen generische Funktionen das Problem der variadischen Parametertypen in Golang? Lösen generische Funktionen das Problem der variadischen Parametertypen in Golang? Apr 16, 2024 pm 06:12 PM

Generische Funktionen in Go lösen das Problem variadischer Typen: Generische Funktionen ermöglichen die Angabe von Typparametern zur Laufzeit. Dadurch ist es möglich, Funktionen zu schreiben, die Parameter unterschiedlichen Typs verarbeiten können. Beispielsweise ist die Max-Funktion eine generische Funktion, die zwei vergleichbare Parameter akzeptiert und den größeren Wert zurückgibt. Durch die Verwendung generischer Funktionen können wir flexibleren und allgemeineren Code schreiben, der verschiedene Parametertypen verarbeiten kann.

Spezifische Anwendungsszenarien von Generika in Golang Spezifische Anwendungsszenarien von Generika in Golang May 04, 2024 am 11:45 AM

Anwendungsszenarien von Generika in Go: Erfassungsvorgänge: Erstellen Sie Erfassungsvorgänge, die für jeden Typ geeignet sind, z. B. zum Filtern. Datenstrukturen: Schreiben Sie allgemeine Datenstrukturen wie Warteschlangen, Stapel und Karten, um verschiedene Datentypen zu speichern und zu bearbeiten. Algorithmen: Schreiben Sie allgemeine Algorithmen wie Sortieren, Suchen und Reduzieren, die verschiedene Datentypen verarbeiten können.

Was sind die Ober- und Untergrenzen von Java-Funktionsgenerika? wie benutzt man? Was sind die Ober- und Untergrenzen von Java-Funktionsgenerika? wie benutzt man? Apr 26, 2024 am 11:45 AM

Generische Java-Funktionen ermöglichen das Festlegen von Ober- und Untergrenzen. Extends gibt an, dass der von einer Funktion akzeptierte oder zurückgegebene Datentyp ein Untertyp des angegebenen Typs sein muss, z. B. Die untere Grenze (super) gibt an, dass der von einer Funktion akzeptierte oder zurückgegebene Datentyp ein Supertyp des angegebenen Typs sein muss, z. B. Die Verwendung von Generika verbessert die Wiederverwendbarkeit und Sicherheit des Codes.

Entdecken Sie die Vorteile und Einsatzmöglichkeiten von Generika in Golang Entdecken Sie die Vorteile und Einsatzmöglichkeiten von Generika in Golang Apr 03, 2024 pm 02:03 PM

Antwort: Golang-Generika sind ein leistungsstarkes Tool zur Verbesserung der Wiederverwendbarkeit, Flexibilität, Typsicherheit und Skalierbarkeit von Code. Detaillierte Beschreibung: Vorteile: Wiederverwendbarkeit des Codes: Gemeinsame Algorithmen und Datenstrukturen Flexibilität: Laufzeiterstellung von Instanzen bestimmter Typen Typsicherheit: Typprüfung zur Kompilierungszeit Erweiterbarkeit: Einfache Erweiterung und Anpassung Zweck: Gemeinsame Funktionen: Sortieren, Vergleich Gemeinsame Datenstrukturen wie Listen , Karten, Stapel usw. Typaliase: Typdeklarationen vereinfachen. Eingeschränkte Generika: Typsicherheit gewährleisten

Anwendung von Java-Generika in der Android-Entwicklung Anwendung von Java-Generika in der Android-Entwicklung Apr 12, 2024 pm 01:54 PM

Die Anwendung von Generika in der Android-Entwicklung verbessert die Wiederverwendbarkeit, Sicherheit und Flexibilität des Codes. Die Syntax besteht aus der Deklaration einer Typvariablen T, die zum Bearbeiten typparametrisierter Daten verwendet werden kann. Zu den in Aktion befindlichen Generika gehören benutzerdefinierte Datenadapter, die es dem Adapter ermöglichen, sich an jede Art von benutzerdefinierten Datenobjekten anzupassen. Android bietet außerdem generische Listenklassen (z. B. ArrayList) und generische Methoden, die die Manipulation von Parametern unterschiedlicher Typen ermöglichen. Zu den Vorteilen der Verwendung von Generika gehören die Wiederverwendbarkeit, Sicherheit und Flexibilität des Codes. Es muss jedoch darauf geachtet werden, die richtigen Grenzen anzugeben und diese in Maßen zu verwenden, um die Lesbarkeit des Codes sicherzustellen.

Welche Einschränkungen gibt es bei generischen Funktionen in Golang? Welche Einschränkungen gibt es bei generischen Funktionen in Golang? Apr 16, 2024 pm 05:12 PM

Einschränkungen der generischen Go-Funktionen: Es werden nur Typparameter unterstützt, Wertparameter werden nicht unterstützt. Funktionsrekursion wird nicht unterstützt. Typparameter können nicht explizit angegeben werden, sie werden vom Compiler abgeleitet.

Welchen Einfluss haben Golang-Generika auf Funktionssignaturen und Parameter? Welchen Einfluss haben Golang-Generika auf Funktionssignaturen und Parameter? Apr 17, 2024 am 08:39 AM

Zu den Auswirkungen von Generika auf Go-Funktionssignaturen und -Parameter gehören: Typparameter: Funktionssignaturen können Typparameter enthalten, die die Typen angeben, die die Funktion verwenden kann. Typeinschränkungen: Typparameter können Einschränkungen haben, die Bedingungen angeben, die sie erfüllen müssen. Parametertyp-Inferenz: Der Compiler kann auf den Typ nicht spezifizierter Typparameter schließen. Angeben von Typen: Parametertypen können explizit angegeben werden, um generische Funktionen aufzurufen. Dies erhöht die Wiederverwendbarkeit und Flexibilität des Codes und ermöglicht Ihnen das Schreiben von Funktionen und Typen, die mit mehreren Typen verwendet werden können.

Wie funktionieren Java-Enum-Typen mit Generika? Wie funktionieren Java-Enum-Typen mit Generika? May 04, 2024 am 08:36 AM

Die Kombination von Aufzählungstypen und Generika in Java: Wenn Sie eine Aufzählung mit Generika deklarieren, müssen Sie spitze Klammern hinzufügen, und T ist der Typparameter. Wenn Sie eine generische Klasse erstellen, müssen Sie auch spitze Klammern hinzufügen. T ist ein Typparameter, der jeden Typ speichern kann. Diese Kombination verbessert die Codeflexibilität, die Typsicherheit und vereinfacht den Code.

See all articles