理解 Java Enum 定义
Java Enum 类定义如下:
class Enum<E extends Enum<E>>
该类型参数表示枚举的类型参数必须派生自本身具有相同类型参数的枚举。换句话说,枚举的类型参数引用枚举本身。
例如,考虑以下名为 StatusCode 的枚举:
public class StatusCode extends Enum<StatusCode>
这里,枚举的类型参数是 StatusCode。这意味着E等于StatusCode,并且满足扩展Enum
Enum自引用的目的
此自引用的目的类型参数是为了允许 Enum 类在其 API 中引用自身。例如,Enum
类似类型参数的示例
类似类型参数可用于类型需要引用自身的其他情况。例如,考虑 ProtocolBuffers 的 C# 端口中使用的以下接口:
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>
这些接口允许构建器创建适当的消息,反之亦然,而无需向 API 用户公开实现细节。
以上是Java 的枚举自引用类型参数如何实现类型安全比较和 API 设计?的详细内容。更多信息请关注PHP中文网其他相关文章!