随笔分类 - Groovy
摘要:Groovy类 package preload_groovy class GroovyKlass { static void main(String[] args) { println "Hello" } } package preload_groovy; import org.codehaus.g
阅读全文
posted @ 2020-12-31 09:46
JXY_Super
摘要:自定义脚本类官方文档原型 abstract class MyScript extends Script { String name String greet() { "Hello, $name!" } } import org.codehaus.groovy.control.CompilerConf
阅读全文
posted @ 2020-08-06 14:47
JXY_Super
摘要:groovy.lang.GroovyShell 在内部,它使用groovy.lang.GroovyClassLoader,这是在运行时编译和加载类的核心。 groovy.lang.GroovyClassLoader 通过使用GroovyClassLoader代替GroovyShell,您将能够加载类
阅读全文
posted @ 2020-07-02 17:19
JXY_Super
摘要:class RecScript extends Script { @Override Object run() { return null } static Object addYear(String str, int num){ def (localDate, formatter) = forma
阅读全文
posted @ 2020-04-14 09:00
JXY_Super
摘要:package curveJudge import groovy.text.SimpleTemplateEngine /** * Created by Jxy on 2019/8/26 17:16 * */ class EngineTest { static void main(String[] args) { def shell = new GroovyShell() def engine =
阅读全文
posted @ 2019-08-27 14:21
JXY_Super
摘要:/********* * groovy中Object类型存在隐式转换 可以不必使用as强转 */ Object munber = 9.343444 def number1 = 2 println munber - number1 if (number1 number }" a...
阅读全文
posted @ 2019-08-08 08:52
JXY_Super
摘要:集合中一些方法工作在集合的一个副本上并且完成的时候返回这个副本,而另外一些方法直接操作这个集合对象。 和Java一样不能通过迭代移除元素。 list和map遵循java规则限制,但通过附加的方法降低了操作难度。 在闭包内使用return关键字和在闭包外使用是有区别的。 当使用list.each时从闭
阅读全文
posted @ 2019-04-17 13:05
JXY_Super
摘要:在groovy中使用break跳出each或者find的循环会会报错,为什么呢?groovy中each、find方法是一个闭包操作,要想跳出循环要使用 return true,但有几个问题有待研究: 1、groovy each 中的return true 相当于Java中的continue , 但不
阅读全文
posted @ 2019-01-31 15:18
JXY_Super
摘要:当对一个GString实例求值时,如果其中包含一个变量,该变量的值会被简单地打印到一个Writer,通常是一个StringWriter。然而,如果GString中包含的是一个闭包,而非变量,该闭包就会被调用。如果闭包接受一个参数,GString会把Writer对象当做一个参数发送给它。如果闭包不接受
阅读全文
posted @ 2019-01-31 09:37
JXY_Super
摘要:groovy每执行一次脚本,都会生成一个脚本的class对象,并new一个InnerLoader去加载这个对象。 所有的脚本都是由GroovyClassLoader加载的,每次加载脚本都会生成一个新的InnerLoader去加载脚本。 Groovy会把脚本编译为一个名为Scriptxx的类,这个脚本
阅读全文
posted @ 2019-01-30 14:13
JXY_Super
摘要:a + b a.plus(b)中 a - b a.minus(b)中 a * b a.multiply(b)中 a ** b a.power(b)中 a / b a.div(b)中 a % b a.mod(b)中 a | b a.or(b)中 a & b a.and(b)中 a ^ b a.xor(
阅读全文
posted @ 2019-01-30 14:08
JXY_Super
摘要:知识点是Groovy中的模板引擎 GStringTemplateEngine 第一个例子: 第二个例子:
阅读全文
posted @ 2019-01-25 10:28
JXY_Super
摘要:科里化闭包:带有预先绑定形参的闭包。在预先绑定一个形参之后,调用闭包时就不必为这个形参提供实参了。有助于去掉方法调用中的冗余重复。 使用curry方法科里化任意多个参数 使用rcurry方法科里化后面的参数 使用ncurry方法科里化中间参数 简单例子: 结果:
阅读全文
posted @ 2019-01-07 09:31
JXY_Super
摘要:动态类型 动态类型中的类型是在运行时推断的,方法及其参数也是在运行时检查的。 能力式设计 被称作鸭子模式:他有这么一个观点:如果它走路像鸭子,叫起来也像鸭子,那么他就是一只鸭子。 契约式设计 相当于Java中定义的接口,他与能力式设计相对。 使用动态类型语言要自律 单元测试等等手段 运行结果:
阅读全文
posted @ 2019-01-04 11:15
JXY_Super
摘要:/** * Created by Jxy on 2019/1/3 15:42 * groovy对枚举的支持 */ enum CoffeeSize{ SHORT,SMALL,BIG,MUG } def orderCoffee(size){ println "coffee is $size" switch (size){ case [CoffeeSiz...
阅读全文
posted @ 2019-01-03 16:04
JXY_Super
摘要:/** * Created by Jxy on 2019/1/3 10:01 * 1.实现循环的方式 * 2.安全导航操作符---?. * 3.一次性赋值给多个变量 */ 0.upto(2){ print "$it" } println "输出了所选范围内的所有值,可以设置范围的上下限" 3.times { print "$it"} println "范围从0开始" 0.step...
阅读全文
posted @ 2019-01-03 16:03
JXY_Super
摘要:GroovyClassLoader 用 Groovy 的 GroovyClassLoader ,动态地加载一个脚本并执行它的行为。GroovyClassLoader是一个定制的类装载器,负责解释加载Java类中用到的Groovy类。 GroovyShell GroovyShell允许在Java类中(
阅读全文
posted @ 2018-12-26 12:11
JXY_Super
摘要:1、Default imports,默认情况下,导入下面的包: java.io. * java.lang。* java.math.BigDecimal中 java.math.BigInteger中 java.net.* java.util中.* groovy.lang.* groovy.util.*
阅读全文
posted @ 2018-12-24 10:24
JXY_Super
摘要:/** * Created by Jxy on 2018/12/21 14:07 * trait关键字 * 声明trait中的方法和任何常规方法一样 * trait声明抽象方法需要在实现类中实现 * 也可以有私有方法 Those methods will not appear in the trait contract interface * groovy接口 * trait也可以...
阅读全文
posted @ 2018-12-21 15:17
JXY_Super

浙公网安备 33010602011771号