摘要: 1.Groovy 中的闭包Java的一些不足可以通过使用groovy的闭包很好的解决,通过下面这个例子来看看使用闭包的优势:在Java中遍历一个集合的方法是使用迭代,就像下面这样:def acoll = ["Groovy", "Java", "Ruby"] for(Iterator iter = acoll.iterator(); iter.hasNext();){ println iter.next()}实际上在 for 循环中并不需要类型声明,因为 Groovy 已经将迭代转变为任何集合的直接成员。在这个示例中,不必获取 Iter 阅读全文
posted @ 2012-06-01 10:12 Johnny Yan 阅读(4741) 评论(0) 推荐(1)
摘要: ranges尽管ranges没有出现在java标准类库中,但大多数程序员对range都有一个直观的概念--一个有效的开始点和一个结束点,类似于for语句范 围 是一系列的值。例如 “0..4” 表明包含 整数 0、1、2、3、4。Groovy 还支持排除范围,“0..<4” 表示 0、1、2、3。还可以创建字符范围:“a..e” 相当于 a、b、c、d、e。“a..<e” 包括小于 e 的所有值。循环范围范围为循环带来了很大的方便。例如,前面从 0 递增到 4 的 for 循环如下所示:for(i = 0; i < 5; i++)范围可以将这个 for 循环变得更简洁,更易阅 阅读全文
posted @ 2012-05-30 15:50 Johnny Yan 阅读(405) 评论(0) 推荐(0)
摘要: 1简单的映射(maps)一个map是用来给一个键(key)分配值(value)的强类型,map可以通过key存储和找回valuea.不像java,groovy在语言级别支持map,允许使用特定的操作符来操作map,maps的操作语法像键-值对数组,通过冒号分割key-valuea.def http=[:] //声明一个mapprintln http.size()http['syn']='Hello Synvata'//向map添加K-Vprintln http['syn'] 一般情况下key的类型都是字符串,在声明map的时候可以忽略字符串标记( 阅读全文
posted @ 2012-05-30 15:12 Johnny Yan 阅读(8718) 评论(0) 推荐(1)
摘要: Operator Name Method Works witha + bPlusa.plus(b)Number, String, Collectiona - bMinusa.minus(b)Number, String, Collectiona * bStara.multiply(b)Number, String, Collectiona / bDividea.div(b)Numbera % bModuloa.mod(b)Integral numbera++++aPost incrementPre incrementa.nextNumber,String,rangea----aPost ... 阅读全文
posted @ 2012-05-28 15:47 Johnny Yan 阅读(512) 评论(0) 推荐(0)
摘要: 1 lists java通过使用方括号和下标索引数组,groovy使用了同样的方法来支持list-java.util.List的实例,java.util.List允许向列表中增加或者删除对象,允许在运行时改变列表的大小,保存在列表中的对象不受类型的限制。另外,在groovy中可以通过超出列表范围的数来索引列表,再一次表明可以改变列表的大小,此外,列表也可以在代码中指定 def roman=['','I','II','III','IV','V','VI','VII']p 阅读全文
posted @ 2012-05-28 10:37 Johnny Yan 阅读(6457) 评论(0) 推荐(0)
摘要: 在Java中,字符串大多数使用java.lang.String类型处理,在Groovy中提供了一些途径是字符串工作更加容易1Gstring在groovy中,字符串能出现在单引号或者双引号中,在双引号的字符串中可以使用占位符,占位符在必要的时候将自动解析,这是个GString类型def nick='Groovy'def book='Groovy in action'assert "$nick is $book"=="Groovy is Groovy in action"assert "${nick} is ${bo 阅读全文
posted @ 2012-05-28 10:08 Johnny Yan 阅读(3946) 评论(0) 推荐(0)
摘要: 1下载Groovy安装包,使用当前稳定的1.8.6版本 wget http://dist.groovy.codehaus.org/distributions/groovy-binary-1.8.6.zip2 解压缩unzip groovy-binary-1.8.6.zip3 将解压后的目录移动至/usr/libsudo mv groovy-1.8.6 /usr/lib/4设置环境变量,在/etc/profile增加export GROOVY_HOME=/usr/lib/groovy-1.8.6export PATH=$GROOVY_HOME/bin:$PATH:.5 更新环境变量source. 阅读全文
posted @ 2012-05-28 09:39 Johnny Yan 阅读(2571) 评论(0) 推荐(0)
摘要: 基本概念:序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。昨天在一本书上看到了,好好实践了一下,序列化为一般文件,也序列化为XML文件(使用XStream)。用于序列化的实体类Person.java 代码如下(记得需要实现Serializable接口):import java.io.Serializable;@SuppressWarnings("serial")public class Person implements Serializable{ private String na 阅读全文
posted @ 2012-05-17 10:15 Johnny Yan 阅读(369) 评论(0) 推荐(1)
摘要: 1 InputStream类型 InputStream的作用是标志那些从不同的数据源产生输入的类,这些源包括:字节数组,String对象,文件,管道,一系列其他流。 ByteArrayInputStream允许内存中的一个缓冲区作为InputStream使用 StringInputStream将一个字符串转化为一个InputStream FileInputStream用于从文件读取信息 每个相应的InputStream有一个相对的OutputStreampublic static void main(String[] args) { // TODO Auto-gener... 阅读全文
posted @ 2012-05-17 09:56 Johnny Yan 阅读(8088) 评论(1) 推荐(0)