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>>
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>
In diesem Szenario entspricht E StatusCode. Somit erweitert E Enum
Dieses Konstrukt ermöglicht es der Enum-API, auf sich selbst zu verweisen, wie z. B. in Enum
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>
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> {}
In diesem Fall würde Second Comparable
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!