WEB开发网
开发学院软件开发Java Groovy轻松入门 阅读

Groovy轻松入门

 2012-08-08 12:15:19 来源:WEB开发网   
核心提示:这是三目运算符“?:”的简单形式,三目运算符通常以这种形式初恋: String displayName=name!=null?name:"Unknown"; 在Groovy中,Groovy轻松入门(5),也可以简化为(因为null在Groovy中可以转化为布尔值false):
这是三目运算符“?:”的简单形式,三目运算符通常以这种形式初恋:
String displayName=name!=null?name:"Unknown";
在Groovy中,也可以简化为(因为null在Groovy中可以转化为布尔值false):
String displayName=name?name:"Unknown";
基于“不重复”的原则,可以是用elvis操作符再次简化为:
String displayName=name?:"Unknown";
17、动态性
Groovy所有的对象都有一个元素metaClass,我们可以通过metaClass属性访问该元类。通过元类,可以为这个对象增加方法(在java中不可想象!)见下面的代码,msg是一个String,通过元类,我们为msg增加了一个String类中没有的方法up:
def msg="Hello!"
println msg
println msg.metaClass
String.metaClass.up={delegate.toUpperCase()}
println msg.up()
通过元类,我们还可以检索对象所拥有的方法和属性(就是反射):
msg.metaClass.metaMethods.each {println it.name}
msg.metaClass.properties.each { println it.name}
甚至我们可以看到我们刚才添加的up方法。
我们可以通过元类判断有没有一个叫up的方法,然后再调用它:
if (msg.metaClass.respondsTo(msg, 'up')) {
println msg.up()
}
当然,也可以推断它有没有一个叫bytes的属性:
if(msg.metaClass.hasProperty(msg, 'bytes')) {
println msg.bytes.encodeBase64()
}

上一页  1 2 3 4 5 

Tags:Groovy 轻松 入门

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接