构建器宏

快速入门 🚀

虽然宏仍然是非常新的概念,其灵感来自于 Doug Gregor 的工作 这里,但本仓库旨在通过探索宏的功能来帮助您熟悉它们。

虽然宏目前仍处于“beta”阶段,因为依赖项指向 5.9-DEVELOPMENT-SNAPSHOT,但如果您的项目是用 Xcode 15 beta 创建的,您可能可以将 Package 库添加到您的项目中。

尽情体验 🛝

目前,要体验它,请下载仓库并运行可执行目标 BuilderMacroClientBuilderMacro 包含了最重要的代码。

这个宏的基本概念是生成一个 Builder 辅助类,它将包含与它所附加到的结构体相同的存储属性,所有属性都是可选的,可以根据需要设置。 此外,还有一个辅助的 fill 方法,用于根据填充对象设置所有属性,以及 build 方法,该方法将尝试根据内部的内容生成结构体。 可以在 BuilderMacroTests 中找到它如何影响代码的示例。

概述

使用 @Builder 注解编写如下代码

image

相当于手动编写如下代码

image

您可以根据您的用例使用不同风格的构建器

抛出异常

如果您想了解构建器无法构建您的模型的原因,请使用 @ThrowingBuilder,它将抛出一个错误,说明第一个缺少且需要存在的属性。

image

流畅式

如果您更喜欢通过一系列构建命令来获得结果,请附加 @FluentBuilder

image

额外的构建器功能

除了标准的 fill/build 方法之外,还有额外的机制。