Heim > Java > javaLernprogramm > Wie funktioniert der generische Enum-Typparameter „E erweitert Enum' von Java?

Wie funktioniert der generische Enum-Typparameter „E erweitert Enum' von Java?

DDD
Freigeben: 2024-11-26 04:22:17
Original
499 Leute haben es durchsucht

How Does Java's Enum Generic Type Parameter `E extends Enum` Work?

Java-Enum-Definition: Generika mit Typparametern verstehen

Die Enum-Klasse von Java verwendet einen besonderen Typparameter, der zunächst verwirrend erscheinen mag:

class Enum<E extends Enum<E>>
Nach dem Login kopieren

Dieser Parameter bedeutet, dass ein Aufzählungstyp von einem anderen Aufzählungstyp mit demselben Typ abgeleitet sein muss Argument. In der Praxis ist das Typargument der Aufzählungstyp selbst, wie in diesem Beispiel zu sehen ist:

public enum StatusCode extends Enum<StatusCode>
Nach dem Login kopieren

In diesem Szenario entspricht E StatusCode. Somit erweitert E Enum und erfüllt die Anforderung des Parameters.

Dieses Konstrukt ermöglicht es der Enum-API, auf sich selbst zu verweisen, wie z. B. in Enum implementiert Comparable. Die Basisklasse kann Vergleiche durchführen und dabei sicherstellen, dass nur die entsprechenden Aufzählungen verglichen werden.

Ein ähnliches Konzept wird in C# mit den Schnittstellen von ProtocolBuffers beobachtet:

public interface IBuilder<TMessage, TBuilder>
  where TMessage : IMessage<TMessage, TBuilder> 
  where TBuilder : IBuilder<TMessage, TBuilder>

public interface IMessage<TMessage, TBuilder>
  where TMessage : IMessage<TMessage, TBuilder> 
  where TBuilder : IBuilder<TMessage, TBuilder>
Nach dem Login kopieren

Dies stellt sicher, dass Nachrichten und Builder dies können entsprechend gepaart werden.

Es ist zu beachten, dass der Typparameter Inkonsistenzen nicht verhindert. Beispielsweise wären die folgenden Typen gültig:

public class First extends Enum<First> {}
public class Second extends Enum<First> {}
Nach dem Login kopieren

In diesem Fall würde Second Comparable implementieren. anstelle von Comparable, was zu unerwartetem Verhalten führen kann. Die Absicht des Typparameters besteht jedoch darin, in gültigen Fällen Vorteile bereitzustellen, und nicht unbedingt darin, eine konsistente Verwendung zu erzwingen.

Das obige ist der detaillierte Inhalt vonWie funktioniert der generische Enum-Typparameter „E erweitert Enum' von Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage