Groovy 中提供了一种可以将List直接转成对象的方式,这种方式将隐式调用Groovy bean中定义的构造函数来创建对象。
假设我们有如下Groovy bean定义:
class Addr{
String homeAddr
String workAddr
Addr(def home,def office)
{
this.homeAddr=home
this.workAddr=office
}
}
那么创建Addr对象将有如下几种方式:
1. 显示调用构造函数Addr(def home,def office)
def addr=new Addr("home","office")
2. 显示使用as来调用对应的构造函数
def addr=["home","office"] as Addr
3. 隐式的让groovy通过类型推断来调用对应的构造函数
Addr addr=["home","office"]
对于第2种第3种方式,groovy bean需要显示提供对应的构造函数定义。
如果Addr groovy bean的定义没有显示提供对应的构造函数或者提供错误的构造函数,那么都不能通过将List的方式来使用groovy bean的构造函数:
没有提供对应的构造函数:
class Addr{
String homeAddr
String workAddr
}
Addr addr=["home","office"] // def addr=["home","office"] as Addr
异常:
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '[home, office]' with class 'java.util.ArrayList' to class 'constructor.Addr'
提供错误的构造函数(比如说错误的参数个数或者参数类型):
class Addr{
String homeAddr
String workAddr
Addr(int home,def office) //wrong argument type
{
this.homeAddr=home
this.workAddr=office
}
}
Addr addr=["home","office"]
class Addr{
String homeAddr
String workAddr
Addr(def home,def office,def nonUse) //wrong argument numbers
{
this.homeAddr=home
this.workAddr=office
}
}
Addr addr=["home","office"]
分享到:
相关推荐
通过groovy自定义函数实现提取明细表字段至主表字段,同时根据表单上的字段进行计算,将计算结果在字段上显示;致远、groovy
Groovy 调用 Java 类groovy 调用 Java class 十分方便,只需要在类前导入该 Java 类,在 Groovy 代码中就可以无缝使用该
赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
Java调用Groovy,实时动态加载数据库groovy脚本,java读取mongoDB的groovy脚本,加载实时运行,热部署
赠送jar包:groovy-2.5.1.jar; 赠送原API文档:groovy-2.5.1-javadoc.jar; 赠送源代码:groovy-2.5.1-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
Java中使用Groovy的三种方式,详细见我的博客。
Groovy入门经典 中英文版本,包含以下文件: Groovy Program.pdf Groovy入门经典.pdf 图书链接:http://product.china-pub.com/36984
eclipse中的groovy插件 eclipse中的groovy插件 实用
Groovy学习资料-中文.rar。Groovy学习资料。Grails学习资料。mht网页格式。
apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...
Groovy语言。 里面详细介绍了一些很有意思的方法。
Making Java Groovy is a practical handbook for developers who want to blend Groovy into their day to day work with Java It starts by introducing the key differences between Java and Groovy and how you...
groovy入门经典,groovyeclipse 插件
groovy脚本实现对数据库的增删改查,groovy脚本不需要编译,十分实用
软件项目的可扩展性和动态维护性是非常重要的,例如在微服务的网关动态过滤器中,要实现过滤器的动态更新而不影响项目的持续运行,就需要借助groovy的动态编译功能,而这个功能是通过 .groovy文件实现的。...
Groovy在Spring中的简单使用,欢迎下载!
Groovy轻松入门—搭建Groovy开发环境 Groovy轻松入门—搭建Groovy开发环境
由于具有动态弱类型,以及无缝访问JavaAPI等特性,Groovy语言非常适合子开发中小型规模的应用程序。 相对于Java语言,Groovy语言的表述性更强,抽象程度更高。它使得应用程序开发更加快捷,提升了程序员生产力。...
groovy-2.3.6-installer windows安装版本
赠送jar包:groovy-all-2.4.5.jar; 赠送原API文档:groovy-all-2.4.5-javadoc.jar; 赠送源代码:groovy-all-2.4.5-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。