
Groovy秘籍
Groovy中的各种技巧
爱游泳的老白
软件狂人
展开
-
创建索引属性Getter和Setter方法
通常,如果我们在Groovy代码中使用我们的类,我们不需要那些额外的方法,因为我们可以通过GPath来访问和设置Collection类型属性中的元素。但是假设我们的类需要从Java代码或IDE访问,我们需要这些额外的方法。在Groovy中,我们可以在类中定义属性,并自动在类文件中生成这些属性的getter和setter方法。如果我们有一个Collection类型属性,我们通常会获得此属性的。但是根据JavaBean规范,我们可以将Collection类型属性定义为索引属性。原创 2023-06-06 17:32:07 · 430 阅读 · 0 评论 -
使用Builder AST 转换为流式API
AST转换轻松地为我们的类创建一个流畅的API。我们可以将注释应用于我们的类,结果类文件将具有支持流畅API的所有必要方法。我们可以自定义如何使用不同的注释参数生成流畅的API。有一个简洁的方法来设置属性值或使用 命名的构造函数参数。但是如果我们的类需要从Java中使用,那么为Java开发人员提供一个流畅的API来为我们的Groovy类做很好。方法,该方法返回一个内部帮助器类,我们可以使用它来设置我们的属性。对于每个属性,它们是一个带有属性名称的新方法,因此我们可以设置一个值。最后,我们的类包含一个。原创 2023-06-05 11:19:20 · 795 阅读 · 0 评论 -
使用Builder AST 转换为流式API
AST转换轻松地为我们的类创建一个流畅的API。我们可以将注释应用于我们的类,结果类文件将具有支持流畅API的所有必要方法。我们可以自定义如何使用不同的注释参数生成流畅的API。有一个简洁的方法来设置属性值或使用 命名的构造函数参数。但是如果我们的类需要从Java中使用,那么为Java开发人员提供一个流畅的API来为我们的Groovy类做很好。方法,该方法返回一个内部帮助器类,我们可以使用它来设置我们的属性。对于每个属性,它们是一个带有属性名称的新方法,因此我们可以设置一个值。最后,我们的类包含一个。原创 2023-06-05 11:12:12 · 771 阅读 · 0 评论 -
元组构造函数创建
通过这个注释,我们可以在编译时自动创建一个元组构造函数。对于类中的每个属性,将使用默认值创建构造函数中的参数。类中定义的属性的顺序还定义了构造函数中参数的顺序。因为参数具有默认值,所以我们可以使用Groovy语法,并在使用构造函数时将参数留在参数列表的末尾。我们甚至可以指示注释在构造函数中创建代码,以使用属性调用超类的超级构造函数。我们必须确保自己没有构造函数冲突,因为现在注释将创建额外的构造函数。如果我们的类扩展了另一个类,并且我们想要包含超类的属性或字段,我们可以使用属性。但我们可以使用属性值。原创 2023-06-05 11:10:49 · 352 阅读 · 0 评论 -
使一个类不可变
创建不可变对象,创建后不能更改。这使得不可变对象在并发和函数编程中非常有用。要将Java类定义为不可变,我们必须将所有属性定义为readonly和private。只有构造函数可以设置属性的值。,我们为这个类创建的任何对象都是一个不可变对象。Groovy按照不可变对象的规则生成一个类文件。所以所有属性都是readonly,构造函数是为了设置属性,生成。具有适用于不可变对象的规则的完整列表。使类不可变的Java代码很冗长,特别是因为需要重写。转换为我们完成所有工作。我们只需要在类定义中定义。原创 2023-06-05 11:08:16 · 332 阅读 · 0 评论 -
使用EqualsAndHashCode注解生成equals和hashcode方法
我们甚至可以包括类字段而不是仅包含用于生成两种方法的属性。在分配注释时,我们只需要使用。实现的(遵循书中的算法* Effective Java *)。Groovy 1.8中有很多新的字节码生成注释。excludes`,我们可以分配属性和字段名称列表。方法查看类的所有单个属性,以查看两个对象是否相同。要包含对超类的调用,我们使用注释属性。使用此注释,为类生成。方法是使用Groovy。原创 2023-06-05 11:05:33 · 692 阅读 · 0 评论 -
简单的`@ToString`注解
从Groovy 1.8开始,我们可以使用注释来轻松创建方法。 我们只需要在类定义中添加注释,我们就可以获得类的属性的格式良好的输出。我们甚至可以自定义我们想要在输出中看到的内容。 如果我们添加属性,我们可以在输出中看到我们类的属性的名称。 默认情况下,只将属性添加到输出中,但我们也可以包含字段以及注释属性。 要排除属性,我们使用属性,并在输出中用逗号分隔我们不想要的属性的名称。最后,我们可以包含一个超类的属性,其注释属性为。让我们看一下中的几个样本:原创 2023-06-05 11:04:36 · 1279 阅读 · 0 评论 -
创建一个单例类
在Groovy中创建单例类很简单。转换注释,并为我们生成一个完整的单例类。原创 2023-06-05 11:03:30 · 385 阅读 · 0 评论 -
使用ExpandoMetaClass动态地向类添加方法
我们可以动态地向Groovy中的类添加新的行为,比如方法。所以这意味着一个方法不会添加到源代码中的类定义中,而是添加到应用程序已经运行的类定义中。为此,Groovy为所有类添加了一个。属性,并将定义的行为动态添加到类定义中。在我们添加了行为之后,我们可以创建类的新实例并调用方法,构造函数并像以前一样访问属性。我们可以将方法(也是静态的),属性,构造函数分配给。原创 2023-06-05 11:02:19 · 414 阅读 · 0 评论