ホームページ >Java >&#&チュートリアル >Java の Enum ジェネリック型パラメータ「E extends Enum」はどのように機能しますか?
Java Enum 定義: 型パラメーターを使用したジェネリックスを理解する
Java の Enum クラスは、最初はわかりにくいように見える独特の型パラメーターを採用しています。
class Enum<E extends Enum<E>>
このパラメータは、列挙型が別の列挙型から派生する必要があることを意味します。同じ型の引数。実際には、次の例に示すように、type 引数は enum 型そのものです。
public enum StatusCode extends Enum<StatusCode>
このシナリオでは、E は StatusCode と同等です。したがって、E は Enum
この構造により、Enum
同様の概念が C# の ProtocolBuffers インターフェイスで観察されます。
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>
これにより、メッセージとビルダーが確実に比較できるようになります。
type パラメータは不一致を防ぐものではないことに注意してください。たとえば、次の型は有効です。
public class First extends Enum<First> {} public class Second extends Enum<First> {}
この場合、Second は Comparable
以上がJava の Enum ジェネリック型パラメータ「E extends Enum」はどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。