首页
学习
活动
专区
工具
TVP
发布

白石

专栏作者
54
文章
76787
阅读量
18
订阅数
Groovy 创建索引属性Getter和Setter方法
在Groovy中,我们可以在类中定义属性,并自动在类文件中生成这些属性的getter和setter方法。 如果我们有一个Collection类型属性,我们通常会获得此属性的get/set方法。 但是根据JavaBean规范,我们可以将Collection类型属性定义为索引属性。 这意味着我们需要一个带索引参数的额外get/set方法,因此我们可以直接在属性中设置元素的值:
白石
2019-09-18
1.8K0
Groovy 使用Builder AST 转换为流式API
从Groovy 2.3开始,我们可以使用@Builder AST转换轻松地为我们的类创建一个流畅的API。 我们可以将注释应用于我们的类,结果类文件将具有支持流畅API的所有必要方法。 我们可以自定义如何使用不同的注释参数生成流畅的API。 在Groovy代码中,我们已经可以使用with方法 有一个简洁的方法来设置属性值或使用 命名的构造函数参数。 但是如果我们的类需要从Java中使用,那么为Java开发人员提供一个流畅的API来为我们的Groovy类做很好。
白石
2019-09-18
9410
Groovy 元组构造函数创建
Groovy 1.8添加了@TupleConstructor注释。 通过这个注释,我们可以在编译时自动创建一个元组构造函数。 因此构造函数可以在编译的类中找到。 对于类中的每个属性,将使用默认值创建构造函数中的参数。 类中定义的属性的顺序还定义了构造函数中参数的顺序。 因为参数具有默认值,所以我们可以使用Groovy语法,并在使用构造函数时将参数留在参数列表的末尾。
白石
2019-09-18
1.2K0
Groovy 使一个类不可变
创建不可变对象,创建后不能更改。 这使得不可变对象在并发和函数编程中非常有用。 要将Java类定义为不可变,我们必须将所有属性定义为readonly和private。 只有构造函数可以设置属性的值。 Groovy文档 具有适用于不可变对象的规则的完整列表。 使类不可变的Java代码很冗长,特别是因为需要重写hashCode(),equals()和toString()方法。
白石
2019-09-09
5220
Groovy 使用EqualsAndHashCode注解生成equals和hashcode方法
Groovy 1.8中有很多新的字节码生成注释。 其中一个是@EqualsAndHashCode注释。 使用此注释,为类生成equals()和hashCode()方法。 hashCode()方法是使用Groovyorg.codehaus.groovy.util.HashCodeHelper实现的(遵循书中的算法 Effective Java )。 equals()方法查看类的所有单个属性,以查看两个对象是否相同。
白石
2019-09-09
1.8K0
Groovy: 使用ExpandoMetaClass动态地向类添加方法
我们可以动态地向Groovy中的类添加新的行为,比如方法。 所以这意味着一个方法不会添加到源代码中的类定义中,而是添加到应用程序已经运行的类定义中。 为此,Groovy为所有类添加了一个metaClass属性。 这个属性的类型是ExpandoMetaClass。 我们可以将方法(也是静态的),属性,构造函数分配给metaClass属性,并将定义的行为动态添加到类定义中。 在我们添加了行为之后,我们可以创建类的新实例并调用方法,构造函数并像以前一样访问属性。
白石
2019-08-29
2K0
使用Eclipse来开发调试WebBuilder项目
​ 命名为WB8,然后在项目的右键菜单里,添加Groovy支持!如下图所示:
白石
2019-08-23
7340
Groovy秘诀 顶
听说java世界里有个Groovy大神!java需要半天处理的事情,Groovy只需要几分钟,是的,几分钟…剩下来的时间,程序员终于有时间泡妹子了,^_^…….技术宅的兄弟,赶紧来看看吧。
白石
2019-08-23
4.4K0
让Spring Boot完美融合Groovy作为可热替换的Bean实现步骤
用apply plugin: 'groovy'替换掉apply plugin: 'java'
白石
2019-08-23
6.7K0
Groovy 添加带注释的Map构造函数
从Groovy的早期开始,我们可以创建POGO(Plain Old Groovy Objects)类,它们将具有带有Map参数的构造函数。 Groovy在生成的类中自动添加构造函数。我们可以使用命名参数来创建POGO的实例,因为Map参数构造函数。 这只有在我们不添加自己的构造函数且属性不是最终的时才有效。从Groovy 2.5.0开始,我们可以使用@MapConstrutor AST转换注释来添加带有Map参数的构造函数。使用注释我们可以有更多选项来自定义生成的构造函数。例如,我们可以让Groovy使用Map参数生成构造函数,并添加我们自己的构造函数。 属性也可以是final,我们仍然可以使用带有Map参数的构造函数。
白石
2019-08-23
1.1K0
Groovy中 Base64 URL和文件名安全编码
Groovy支持Base64编码很长一段时间。 从Groovy 2.5.0开始,我们还可以使用Base64 URL和Filename Safe编码来使用encodeBase64Url方法对字节数组进行编码。 结果是一个Writable对象。 我们可以在Writable对象上调用toString方法来获得String值。 可以使用添加到String类的decodeBase64Url方法使用相同的编码对编码的String值进行解码。
白石
2019-08-23
1.2K0
Groovy 计算MD5和SHA哈希值
Groovy为String类添加了许多有用的方法。 从Groovy 2.5.0开始,我们甚至可以使用md5和digest方法计算MD5和SHA哈希值。 md5方法使用MD5算法创建哈希值。 digest方法接受算法的名称作为值。 这些值取决于我们Java平台上的可用算法。 例如,算法MD2,MD5,SHA-1,SHA-256,SHA-384和SHA-512默认可用。
白石
2019-08-23
3.3K0
Groovy 我的Class在哪里
通过将getLocation方法添加到Class类,Groovy 2.5.0可以获得Class文件的位置。 如果Class是JDK的一部分,则返回的位置是null,否则是我们使用Class文件获取JAR文件或源文件(如果可用)的位置。
白石
2019-08-23
5610
Groovy 不可修改的集合
当我们想在Groovy中创建无法修改的集合时,我们可以使用asImmutable。 从Groovy 2.5.0开始,我们也可以在集合中使用asUnmodifiable方法。 该方法可以应用于所有Collection类型,包括Map。
白石
2019-08-23
4250
Groovy中 前序和后序树遍历
Groovy中的Node类有depthFirst和breadthFirst方法,可以使用深度优先遍历或广度优先遍历返回Node对象的集合。由于Groovy 2.5.0,我们可以指定是使用preorder(默认值)还是postorder遍历。此外,这些方法现在接受一个“闭包”,该“闭包”将为每个访问的节点调用。Closure将当前“节点”作为第一个参数,第二个参数是当前节点的树级。
白石
2019-08-23
5860
在SQL GString Query中使用扩展变量
使用groovy.sql.Sql类可以很容易地使用Groovy代码中的SQL数据库。 该类有几种方法来执行SQL查询,但是如果我们使用Sql中带有GString参数的方法,我们必须特别小心。Groovy将提取所有变量表达式,并将它们用作从SQL查询构造的PreparedStatement中占位符的值。 如果我们有变量表达式不应该被提取为PreparedStatement的参数,我们必须使用Sql.expand方法。 此方法将使变量表达式成为groovy.sql.ExpandedVariable对象。 此对象不用作PreparedStatement查询的参数,但该值被评估为GString变量表达式。
白石
2019-08-23
1K0
Groovy里自定义JSON输出-JsonGenerator
Groovy 2.5.0增加了通过JsonGenerator实例自定义JSON输出。 将对象转换为JSON字符串值的最简单方法是通过JsonOutput.toJson。 此方法使用默认的JsonGenerator,其JSON输出具有合理的默认值。 但是我们可以使用自定义生成器并创建JSON输出。 要创建自定义生成器,我们使用可通过JsonGenerator.Options访问的构建器。 通过流式的API,我们可以例如忽略输出中带有null值的字段,更改日期的日期格式,并按名称或值的类型忽略字段。 我们可以通过将转换的实现添加为Closure或者实现JsonGenerator.Converter接口来为类型添加自定义转换器。 要获取JSON字符串,我们只需调用生成器的toJson方法。
白石
2019-08-23
2.2K0
Groovy-拾遗
许多以前使用 C++ 的开发人员会怀念操作符重载,例如 + 和 -。虽然它们很方便,但是被覆盖的操作符的多态实质会造成混淆,所以操作符重载在 Java 语言中被取消了。这个限制的好处是清晰:Java 开发人员不必猜想两个对象上的 + 是把它们加在一起还是把一个对象附加到另一个对象上。不好的地方则是丧失了一个有价值的简写形式。
白石
2019-08-23
1.5K0
Groovy操纵集合秘籍
例如:我们需要得到一个集合对象,它的每一个元素是list对象的每一个元素的两倍 java风格:
白石
2019-08-23
1.2K0
Groovy Base64 URL和文件名安全编码
Groovy支持Base64编码很长一段时间。 从Groovy 2.5.0开始,我们还可以使用Base64 URL和Filename Safe编码来使用encodeBase64Url方法对字节数组进行编码。 结果是一个Writable对象。 我们可以在Writable对象上调用toString方法来获得String值。 可以使用添加到String类的decodeBase64Url方法使用相同的编码对编码的String值进行解码。
白石
2019-08-22
1.2K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档