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
        }
    }
}

控制台输出

Groovy重载操作符_第1张图片

惊不惊喜意不意外!

下面结合性能测试框架的thread类写一个:

 RequestThreadTimes requestThreadTimes = new RequestThreadTimes(FanLibrary.getHttpGet(""), 100);
        List threads = requestThreadTimes * 100;
        new Concurrent(threads).start()

乘法重载如下:

    /**
     * 乘法
     *
     * @param i
     * @return
     */
    public List multiply(int i) {
        ArrayList 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更新实践
  • 如何统一接口测试的功能、自动化和性能测试用例

非技术文章精选

  • 为什么选择软件测试作为职业道路?
  • 写给所有人的编程思维
  • 成为自动化测试的7种技能
  • 如何在DevOps引入自动化测试
  • Web端自动化测试失败原因汇总
  • 如何在DevOps引入自动化测试
  • 测试人员常用借口
  • 2019年浏览器市场份额排行榜
  • API测试基础
  • API自动化测试指南
  • 未来的QA测试工程师

你可能感兴趣的:(Groovy重载操作符)