博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Groovy] 在Groovy中优雅的实现do while
阅读量:6637 次
发布时间:2019-06-25

本文共 965 字,大约阅读时间需要 3 分钟。

Groovy原生是不支持do while的,参考

  •  > 
  •  >  > 
  •  > 

曲线救国,可以这么用

class Looper {   private Closure code   static Looper loop( Closure code ) {      new Looper(code:code)   }   void until( Closure test ) {      code()      while (!test()) {         code()      }   }}
import static Looper.*int i = 0loop {   println("Looping : "  + i)   i += 1} until { i == 5 }

注意 until 这里用的是大括号,才能让条件变成一个闭包

实际使用场景,我们接口中需要调用外部接口,外部接口不是很稳定,容易出错,所以加入了出错重试机制,一共重试三次,三次过后还是不行才放弃。

def responseString = null        Exception exception = null        //出错重试        int retry = 0        Looper.loop {            try{                responseString = HttpUtil.post(url, JSONObject.toJSONString(post), header, 10000, 10000)            }catch (Exception ex){                exception = ex            }finally{                retry++            }        }until { exception == null || retry == 3 }        if(exception != null){            throw exception        }

 

转载于:https://www.cnblogs.com/zhengwangzw/p/10689035.html

你可能感兴趣的文章
【转载】GITHUB之GIT BASH使用教程
查看>>
C/C++回调函数
查看>>
phalcon队列使用Queueing
查看>>
java synchronized详解(二)
查看>>
优秀的 Java 程序员所应该知道的 Java 知识
查看>>
KVM部署搭建
查看>>
MySQL5.7.18 for Linux7.2(二进制安装)
查看>>
设置/修改linux上的swap交换分区的方法
查看>>
vim使用小结
查看>>
Linux新建虚拟机
查看>>
我的友情链接
查看>>
JAVA设计模式:简单工厂、工厂方法、抽象工厂之小结与区别 .
查看>>
.NET概念:消息机制
查看>>
面试官提问最常见的问题与影片在回答分享-70问
查看>>
Java annotation源码解读
查看>>
前端功能资料
查看>>
《数据结构与算法分析--c语言描述》之第一章:引论
查看>>
DAHDI 卡安装配置
查看>>
IE 8下的pdf打不开
查看>>
openwrt linux portal 实现 支持 https 支持基于时长和流量控制
查看>>