GRAILS笔记.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GRAILS笔记

Groovy有而Java没有的新特征 闭包 列表(list)和映射(map)的原生语法 对GroovyMarkup和GPath的支持 对正则表达式的原生支持 native support for regular expressions 多种形式的迭代和强大的switch语句 支持动态和静态类型——所以你省略方法、字段和变量中的类型声明 你可以在字符串中嵌入表达式 为JDK添加了很多新的辅助方法(helper method) 写bean的属性和事件监听器(event listener)的语法更简单 使用?.操作符进行安全导航,例如“variable?.field”和“variable?.method()”——再也不会有用来检查null的嵌套if语句充斥着你的代码了 1、Groovy保留Java语法和语义, 可以随时混合Java 样式 和 Groovy样; Hello, Groovy 这是Java代码同样也是Groovy代码: // Java code public class Greetings { public static void main(String[] args) { for(int i = 0; i 3; i++) { System.out.print(ho ); } System.out.println(Merry Groovy! ); }} Groovy代码: for(i in 0..2) { print ho } println Merry Groovy! 2、安全导航操作符 (?.). 消除普通的 null检查: def foo(str) { //if (str != null) {return str.reverse() } str?.reverse() } println foo(evil ) println foo(null) foo( )方法中的?. 操作符当str不为null时才调用str.reverse(). 3、// Java code button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { JOptionPane.showMessageDialog(frame, You clicked! ); } }); Groovy 带来了迷人而通用的方法—不需要actionPerformed( ) 方法或创建任何的匿名类! button.addActionListener( { JOptionPane.showMessageDialog(frame, You clicked! ) } as ActionListener ) 4、Groovy 的 == Is 相当于 Java 的 equals == 和equals( ) 已经在 Java中引起混乱, 而Groovy增加你混乱. Groovy 映射 == 操作符为Java中的equals( ). 如果想进行对象的比较,那你就得使用is( ): str1 = hello str2 = str1 str3 = new String(hello ) str4 = Hello println str1 == str2: ${str1 == str2} println str1 == str3: ${str1 == str3} println str1 == str4: ${str1 == str4} println str1.is(str2): ${str1.is(str2)} println str1.is(str3): ${str1.is(str3)} println str1.is(str4): ${str1.is(str4)} This is the output from the previous code: str1 == str2: true str1 == str3: true str1 == str4: false str1.is(str2): true str1.is(str3): false str1.is(str4): false 5、了解新的关键字 def 用来定义方法,属性和本地变量. in 用于在循环中(i in 1..10). 假如你把他们作为变量名或方法名, 便会出现问题. 这种情况发生在当你把已有的Java代码 当做Groovy代码使用时. 当然你使用def 或in定义变量也不是什么聪明的想法. 6、闭包可能是你以后使用最多的Groovy特性之一。你可以传递闭包给方法并调用它们。 实际 上,GDK 最大的贡献就在于通过闭包来扩展了JDK的方法。闭包为你提供了强大的函数指

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档