- 浏览: 358203 次
文章分类
最新评论
-
string2020:
select * from tab where user_id ...
(转)JPA JPQL -
hety163:
Java 位运算符 -
hiberatejss:
lz,~这个位运算的作用和反码是一样的吗?
Java 位运算符 -
skcmm:
博主,有个问题想请教下。我在/etc/hosts声明一个域名, ...
nginx泛域名解析 -
kid_ren:
写的好
Java 位运算符
Spread Operator(展开运算符)
一个集合使用展开运算符(*.)可以得到一个元素为原集合各个元素执行后面指定方法所得值的集合
Groovy
代码
- class Person{
- String name
- int age
- String toString(){
- return "${name}:${age}"
- }
- }
- def people = [new Person(name:'阿大' ,age: 24 ),new Person(name: '阿二' ,age: 18 )]
- println people*.toString()
- ========================
- result:
- ["阿大:24" , "阿 二:18" ]
class Person{ String name int age String toString(){ return "${name}:${age}" } } def people = [new Person(name:'阿大',age:24),new Person(name:'阿二',age:18)] println people*.toString() ======================== result: ["阿大:24", "阿二:18"]
Elvis Operator(二元运算符)
由于Groovy
中“非空即真”,所以原java中的三元运算符可以简化为二元运算
符
Groovy
代码
- String name= person.name?person.name: 'unknown' // java的写法
- def name2= person.name ?: "unknown" // Groovy 的 写法
String name= person.name?person.name:'unknown'// java的写法
def name2= person.name ?: "unknown" // Groovy
的写法
Safe Navigation/Dereference Operator(安全占位符)
安全占位符(?.)主要用于避免空指针异常
Groovy
代码
- Person user
- println user.name// Throws NullPointerException
- // 为 避免空指针异常,需要加上一个检查,java的写法如下
- if (user != null) {
- println "Java FirstName = ${user.firstName}"
- }
- // Groovy 语法的写法
- println "Groovy FirstName = ${user?.firstName}"
Person user println user.name// Throws NullPointerException // 为避免空指针异常,需要加上一个检查,java的写法如下 if (user != null) { println "Java FirstName = ${user.firstName}" } // Groovy 语法的写法 println "Groovy FirstName = ${user?.firstName}"
Field Operator
查了词典field operator翻译为“场算符”,就中文来讲我不好理解。所以就不翻译了。
由于Groovy
自动的支持属性的getter,但有时候应某种特定的需求,需要自
动写一个特殊的getter,如果有时候需要调用特殊的getter,有
时候又想调用普通POJO那样的getter,那么怎么办呢?使用Groovy
的Field
Operator就可以轻松的解决这个问题。实例如下:
Groovy
代码
- class Todo {
- String name
- def getName() {
- println "Getting Name"
- name
- }
- }
- def todo = new Todo(name: "Jim" )
- println todo.name
- println todo.@name
- ========
- result:
- Getting Name
- Jim
- Jim
class Todo { String name def getName() { println "Getting Name" name } } def todo = new Todo(name: "Jim") println todo.name println todo.@name ======== result: Getting Name Jim Jim
不使用Field Operator调的是写的getter
使用Field Operator调的是POJO的getter
Method Closure Operator
我们知道闭包可以被作为一个方法的参数,但是怎么让一个方法作为一个方法的参数呢?Method Closure
Operator就是用来解决上述问题的,它允许将一个方法当成一个闭包作为另一个方法的参数。
Groovy
代码
- def list = [ '老大' , '老二' , '老三' ]
- //常规的遍 历
- list.each{
- println it
- }
- String printName(name){
- println name
- }
- // 将printName作为参数进行遍历
- list.each(this.&printName)
def list = ['老大','老二','老三'] //常规的遍历 list.each{ println it } String printName(name){ println name } //将printName作为参数进行遍历 list.each(this.&printName)
发表评论
-
转:如何编写UML用例图
2011-04-08 17:01 1918UML用例图是非常有用 ... -
apache配置最大用户数的比较
2011-01-06 15:59 0Apache性能比较测试 8.15 Apache在配置 ... -
(转)JPA JPQL
2010-05-16 23:04 16731JPQL就是一种查询语言,具有与 SQL 相 类似的特 ... -
JQUERY复选框CHECKBOX全选,取消全选
2010-05-11 14:37 1417$("#checkall").click( ... -
XML String和Document的相互转换
2010-05-07 23:29 0在做一般的XML数据交换过程中,我更乐意传递XML字符串,而不 ... -
get the number of online by Play
2010-04-28 14:10 1088It's not an easy problem to sol ... -
play!存在的Cookie设置的bug
2010-04-13 14:24 5543目前playframework使用的Mina在设置Co ... -
playframework的Eclipse插件问题
2010-04-08 17:19 3038在使用playclipse 插件的时候,Eclipse的版本 ... -
nginx泛域名解析
2010-04-05 22:11 5187在dns做一条泛指到主机上,利用nginx做二级域名的rewi ... -
使用play!完成iframe无刷新上传文件
2010-03-25 16:32 2226页面代码片段: <form id="uplo ... -
IE与Firefox兼顾加入收藏
2010-03-23 13:39 1223<script type="text/java ... -
submit和button提交表单的区别
2010-03-23 13:31 19316(1) 下边的写法使得表单frm能够自动提交 :下边的这个f ... -
JPA注解说明
2010-03-19 11:20 3025使用注解元数据 基本注解: 例子: @Entity ... -
playframework的Eclipse插件playclipse
2010-03-16 23:00 1427http://github.com/erwan/playcli ... -
playframework的JPA中对id的处理
2010-03-10 16:35 1913package play.db.jpa; import ja ... -
常用 JPA annotation 参考
2010-03-10 16:18 1781Table Table用来定义entity主表的name,ca ... -
(转)Java虚拟机(JVM)参数配置说明
2010-03-05 10:51 1063Java虚拟机(JVM)参数配置说明 在Java、J2EE ... -
获取msn联系人
2009-07-16 14:22 0网上也有不少例子,但是有些朋友遇到所谓911错误导致无法登录, ... -
将wml转换成html的方法
2009-07-10 17:21 0Opera是直接支持wml的,但是有不少bug。 Firef ... -
unicode详解
2009-05-07 17:31 1610引自:http://baike.baidu.com/view/ ...
相关推荐
groovy模板
Play1使用groovy模板作为渲染引擎,而Play2使用Scala模板。在Play1时期,Japid作为groovy的替代品,非常受欢迎。而在Play官方使用Scala替换groovy后,性能虽然有所提高,但是限于Scala编译器的性能,仍然远不如Play2...
Java中使用Groovy的三种方式,详细见我的博客。
groovy的帮助文档 !!!!!
Play!是一个full-stack(全栈的)Java Web应用框架,包括一个简单的无状态MVC模型,具有Hibernate的对象持续,一个基于Groovy的...5、优秀的错误报告功能:当发生异常,此框架会直接显示出错代码,甚至是模板代码。
[Groovy入门]第十讲.使用模板引擎开发界面
Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。 ...
赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar; 赠送Maven依赖信息文件:groovy-3.0.9.pom; 包含翻译后的API文档:groovy-3.0.9-javadoc-API...
Groovy 调用 Java 类groovy 调用 Java class 十分方便,只需要在类前导入该 Java 类,在 Groovy 代码中就可以无缝使用该
在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。目前的 Groovy 版本是 1.5.4,在 Java 1.4 和 Java 5 平台上都能使用,也能在 Java 6 上使用。 Groovy 的一个好处是,它的语法...
项目从es2升级到es6,groovy脚本也要相应的转换为painless脚本,转换过程中遇到了很多坑,特此总结成文档,供大家一起交流学习。
eclipse中的groovy插件 eclipse中的groovy插件 实用
Groovy 是用于Java虚拟机的一种敏捷的动态语言,它结合了Python、Ruby和Smalltalk的许多强大的特性。它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多...
而在微服务项目中直接添加.groovy文件,存在热点引用不可用问题,即代码中添加一个对象时,编译器不认识则在对象下面画一条横线,而当鼠标移到这个对象时,弹不出可引用包的列表。本文论述了解决这个问题的技巧。
Groovy在Spring中的简单使用,欢迎下载!
Groovy入门经典 中英文版本,包含以下文件: Groovy Program.pdf Groovy入门经典.pdf 图书链接:http://product.china-pub.com/36984
用于soapui中,groovy语言开发的插件之一用于soapui中,groovy语言开发的插件之一
Java调用Groovy,实时动态加载数据库groovy脚本,java读取mongoDB的groovy脚本,加载实时运行,热部署
gstorm, 在groovy脚本中,一个用于数据库和CSV文件的简单 ORM GStorm - Groovy单个表 ORMGStorm是一个轻量级的持久性 helper,允许你在没有任何样板代码的情况下持久化数据。 它也可以充当CSV文件的和 ORM 。示例...
groovy入门经典,groovyeclipse 插件