>本文探讨了自我类型的概念,它们在Java的构建器模式和流利的API中的效用,以及如何使用仿制药模仿它们。 尽管Java缺乏本地自我型的支持,但巧妙的使用仿制药可以取得相似的结果,尽管复杂性增加。
需要自我类型 当方法(例如
>)或fluent API(例如构建者)中的方法时,>自我类型是必不可少的。 这保持了类型的安全性和API流利度。 考虑clone()
方法,该方法返回。 这需要在与子类别一起使用时进行铸造,这是一个麻烦的解决方法。 同样,类层次结构的构建器模式面临着在继承的构建者之间保持一致的返回类型的挑战。 使用继承时,递归容器结构也患有不匹配类型。>
Java缺乏自我类型和解决方案Object.clone()
Java不直接支持自我类型。 但是,我们可以使用仿制药模仿它们。 这涉及引入类型参数(例如,Object
),代表通用类层次结构中的当前类。 然后,每个子类将其类型指定为
>混淆类型声明:
通用类型参数变得令人费解,使代码更难读取和理解。THIS
继承的THIS
实施策略
有效的Java中有效的自型仿真需要仔细的设计:>抽象类层次结构:
使用通用类型参数的抽象类有助于管理复杂性。 具体的实现扩展了这些抽象类,指定了自己的类型。>
隐藏复杂性:保持实现内部复杂的通用类型,向用户揭示清洁器,更简单的接口。
说明性代码片段使用仿制药和抽象类演示了自我类型的仿真。 完整的实现,包括处理多个继承级别和接口实现,将会更加广泛。 核心思想是在抽象基类中使用通用类型参数(THIS
),并将子类指定其混凝土类型的THIS
>。
FAQS
>本文以常见问题解答部分结束,该部分讨论了有关自我类型及其在Java中使用仿制药在Java中的仿真的常见问题。此重写的响应提供了原始文章的更简洁,更有条理的摘要,同时维护关键信息并保留图像。 它还使用适合技术受众的更复杂的语言。
>以上是Java的自我类型的详细内容。更多信息请关注PHP中文网其他相关文章!