Groovy重载操作符
重载一时爽,一直重载一直爽。
最近在读《Groovy in action》一本书重新复习了Groovy的一些语法特性,迷恋上这个重载操作符的功能,坚持爽的不要要的。分享一个Demo。
由于Groovy语法跟Java差别略大但又基本完全兼容Java语法,这个Demo依然以Java语法写出来,方便大家理解。
package com.FunTester.demo import com.fun.frame.SourceCode class demo1 extends SourceCode { public static void main(String[] args) { def s = "fun" * 3 << "fan" println s Demo demo = new Demo() Demo a = new Demo() Demo demo1 = demo + a Demo sssss = demo + 3 Demo fsa = demo * 3 Demo demo2 = demo / 9 Demo demo3 = demo << a Demo demo4 = demo >> a Demo demo5 = demo++ def i = 2 >>> 1 } static class Demo { def plus(Demo demo) { output("加法对象") this } def plus(int s) { output("加法") this } def multiply(int a) { output("乘法") this } def div(int a) { output("除法") this } def leftShift(Demo demo) { output("<<操作") this } def rightShift(Demo demo) { output(">>操作") this } def next() { output("++操作") this } } }
控制台输出
惊不惊喜意不意外!
下面结合性能测试框架的thread类写一个:
RequestThreadTimes requestThreadTimes = new RequestThreadTimes(FanLibrary.getHttpGet(""), 100); List<RequestThreadTimes> threads = requestThreadTimes * 100; new Concurrent(threads).start()
乘法重载如下:
/** * 乘法 * * @param i * @return */ public List<RequestThreadTimes> multiply(int i) { ArrayList<RequestThreadTimes> threads = new ArrayList<>(i); i.times { threads << this.clone(); } threads }
哈,哈,哈!
- 还有一个大秘密:Groovy连操作符“.”也能重写。
- 郑重声明:文章首发于公众号“FunTester”,禁止第三方(腾讯云除外)转载、发表。
技术类文章精选
- java一行代码打印心形
- Linux性能监控软件netdata中文汉化版
- 性能测试框架第二版
- 如何在Linux命令行界面愉快进行性能测试
- 图解HTTP脑图
- 将swagger文档自动变成测试代码
- 五行代码构建静态博客
- 基于java的直线型接口测试框架初探
- Selenium 4.0 Alpha更新日志
- Selenium 4.0 Alpha更新实践
- 如何统一接口测试的功能、自动化和性能测试用例