我在使用具有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