У меня проблема при использовании конструкторов с классом Groovy.Конструкторы Groovy
У меня есть класс Data
в файле под названием Data.groovy
с внутренним классом ContentEntry
. Я хочу, чтобы инициализировать ContentEntry
экземпляры из Data
метода:
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 food anwers спасибо, поддержали всех вас .. В течение 6 лет программирования Java никогда не знал эту вещь о неявной ссылке. Я исправил это, объявив их обычными классами, так как вы не можете объявить их статичными в groovy. – Jack