Generics

Generics

In der Informatik sind Generische Typen Datentypen mit der Möglichkeit zur Angabe von Typparametern. Man spricht auch von parametrischer Polymorphie.

Ein generischer Typ erlaubt es, Datentypen zu erzeugen, die von den zu Grunde liegenden Typen abstrahieren. So würden eine Liste von Zahlen, eine Liste von Zeichen und eine Liste von Datumsangaben im Grunde auf dieselbe Weise programmiert werden. Die Algorithmen zum Einfügen, Suchen und Löschen würden stets gleich ablaufen. Es ist daher wünschenswert, die Implementierung der Liste unabhängig von diesen Typen vorzunehmen.

In Java beispielsweise würde eine generische Liste wie folgt definiert:

 List<T>

Dabei bedeutet List<T> Generischer Typ und T heißt Typparameter. Generische Typen finden sich in allen Programmiersprachen, die das Paradigma der Generischen Programmierung unterstützen.

Bei Programmiersprachen gibt es prinzipiell zwei Ansätze, generische Typen zu unterstützen. Der eine ist es, dass GenerischerTyp<T> für alle Ts denselben Code verwendet und über dynamische Bindung von Methoden spezifische Eigenschaften von T nutzt. Ein anderer Weg, den u.a. C++ geht, ist die Anwendung von Templates. Dabei wird der Typparameter zur Compilierzeit direkt mit dem konkreten Typ ersetzt.

Bei .NET geht Microsoft einen Mittelweg, um die Vorteile beider Methoden zu kombinieren: Für alle Referenztypen als Typparameter benutzt die generische Klasse den gleichen Native Code, da die interne Repräsentation (eine simple Referenz) von allen Referenztypen gleich ist. Bei der Benutzung von Werttypen als Typparameter wird für jeden Werttyp zur Laufzeit bei der erstmaligen Benutzung ein eigener Native Code Pfad erstellt.

Generische Typen in verschiedenen Programmiersprachen

  • C++ implementiert generische Typen mittels Templates
  • Generische Programmierung in Java
  • C# und andere .NET-Sprachen bieten Generics seit .NET 2.0
  • In der Programmiersprache Ada werden generische Typen zur Parametrisierung von Paketen eingesetzt.
  • Delphi für Win32 .NET bietet seit Delphi 2009 Unterstützung für Generics
  • Die Programmiersprache haXe bietet generische Typen für Flash, Javascript und Serverseitige Ausführung (alles drei Bereiche, in denen sonst keine Generik möglich ist)

Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • generics — UK US /dʒəˈnerɪks/ noun [plural] ► products, especially drugs for medical use, that are produced by many companies, rather than by the companies that invented them: »Sales of brand drugs tend to decline as their patents expire and consumers… …   Financial and business terms

  • Generics in Java — Generics are a facility of generic programming that was added to the Java programming language in 2004 as part of J2SE 5.0. They allow a type or method to operate on objects of various types while providing compile time type safety. [… …   Wikipedia

  • Generics — ⇡ No Names, ⇡ Marke …   Lexikon der Economics

  • generics — ge·ner·ic || dʒɪ nerɪk adj. general, of or pertaining to a class or kind; of a genus (Biology); of goods or medication sold without a brand name n. substance or product sold under generic name (e.g. generic drug); wine that is a mixture of… …   English contemporary dictionary

  • Authorized generics — are prescription drugs produced by brand pharmaceutical companies and marketed under a private label, at generic prices. Authorized Generics compete with generic products in that they are identical to their brand counterpart in both active and… …   Wikipedia

  • Generic programming — is a style of computer programming in which algorithms are written in terms of to be specified later types that are then instantiated when needed for specific types provided as parameters and was pioneered by Ada which appeared in 1983. This… …   Wikipedia

  • Comparison of C Sharp and Java — The correct title of this article is Comparison of C# and Java. The substitution or omission of the # sign is because of technical restrictions. Programming language comparisons General comparison Basic syntax Basic instructions …   Wikipedia

  • Generic drug — A generic drug (generic drugs, short: generics) is a drug defined as a drug product that is comparable to brand/reference listed drug product in dosage form, strength, route of administration, quality and performance characteristics, and intended …   Wikipedia

  • Comparison of Java and C Sharp — This is a comparison of the C# programming language with the Java programming language. As the two are both garbage collected runtime compiled languages with syntax derived from C and C++, there are many similarities between Java and C#. However …   Wikipedia

  • Dr. Reddy's Laboratories — RDY redirects here. For the radar system, see Radar Doppler Multitarget. Dr. Reddy s Laboratories Ltd. Type Public Traded as NSE:  …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”