我在使用具有Groovy类的构造函数时遇到问题。Groovy构造函数
我有一个类Data
在一个文件Data.groovy
与内部类ContentEntry
。我想从一个Data
方法初始化ContentEntry
实例:
static void initContent(nid, uid)
{
curContent = new ContentEntry()
curContent.nid = nid;
curContent.uid = uid;
}
与ContentEntry
定义为:
class ContentEntry
{
public int nid, uid
private tags = [:]
public ContentEntry()
{
}
ContentEntry(int nid, int uid)
{
this.nid = nid
this.uid = uid
}
//omitted rest of the class
但在运行项目时,它给了我下面的错误:
Exception in thread "main" org.codehaus.groovy.runtime.metaclass.MethodSelectionException:
Could not find which method <init>() to invoke from this list:
public it.softit.Data$ContentEntry#<init>(it.softit.Data, int, int)
public it.softit.Data$ContentEntry#<init>(it.softit.Data)
这是就好像构造函数隐含地需要一个作为参数传递的外部类的实例。我想知道为什么..
3食物anwers谢谢,upvoted大家..在Java编程的6年从来不知道这个事情关于隐式引用。我修正它将它们声明为普通类,因为你不能在groovy中声明它们是静态的。 – Jack 2010-01-12 00:24:51