Java构造函数未正确初始化

Java构造函数未正确初始化,java,class,Java,Class,我有一个类,它有两个构造函数: public Conferencia(String nomeConferencia, String localizacaoConferencia, int anoConferencia, int mesConferencia, int diaConferencia) { this.nomeConf

我有一个类,它有两个构造函数:

public Conferencia(String nomeConferencia, 
                   String localizacaoConferencia, 
                   int anoConferencia, 
                   int mesConferencia, 
                   int diaConferencia) 
{
    this.nomeConferencia = nomeConferencia;
    this.localizacaoConferencia = localizacaoConferencia;
    this.anoConferencia = anoConferencia;
    this.mesConferencia = mesConferencia;
    this.diaConferencia = diaConferencia;
    this.membroComiteOrganizacao = new MembroComiteOrganizacao[100];
    this.membroComitePrograma = new MembroComitePrograma[100];
    this.idConferencia = contadorConferencias++;
}


public Conferencia(String nomeConferencia, 
                   String localizacaoConferencia, 
                   int anoConferencia, 
                   int mesConferencia, 
                   int diaConferencia, 
                   MembroComiteOrganizacao[] membroComiteOrganizacao) 
{
    this.nomeConferencia = nomeConferencia;
    this.localizacaoConferencia = localizacaoConferencia;
    this.anoConferencia = anoConferencia;
    this.mesConferencia = mesConferencia;
    this.diaConferencia = diaConferencia;
    this.membroComiteOrganizacao = membroComiteOrganizacao;
    this.idConferencia = contadorConferencias++;
}
membrocomiteorganizaco
构造函数如下所示:

public MembroComiteOrganizacao(int papelMembro, 
                               String memberName, 
                               String memberEmail, 
                               String memberInstituicao) 
{
    super(memberName, memberEmail, memberInstituicao);
    this.papelMembro = papelMembro;

}
static Conferencia[] conferencias = {new Conferencia("Congresso 1","Abrantes",2012,1,2)};
main
中,如果我创建了如下内容,则无需插入始终数据:

public MembroComiteOrganizacao(int papelMembro, 
                               String memberName, 
                               String memberEmail, 
                               String memberInstituicao) 
{
    super(memberName, memberEmail, memberInstituicao);
    this.papelMembro = papelMembro;

}
static Conferencia[] conferencias = {new Conferencia("Congresso 1","Abrantes",2012,1,2)};
一切都好

但是现在我想在同一个构造函数中插入关于
MembroComiteOrganizaço
的数据。我已经做到了:

static Conferencia[] conferencias = {new Conferencia("Congresso 1","Abrantes",2012,1,2,new MembroComiteOrganizacao(1,"Regina Kareem Obrien","imc2oep-m.4oa@0o2z09s.com","Casa da Criança de Tires"))};
但它给了我错误

有人能解释一下我做错了什么吗

更新

完成

现在的错误是
在索引0处创建
静态Conferencia[]conferencias
时,应为
),而在索引0处创建
静态Conferencia[]conferencias
时,应为而在索引0处创建
静态Conferencia[]conferencias

时,该c'tor未关闭。

您的类型不匹配,您的Conferencia构造函数将使用membrocomiteOrganizaco数组,但是你给它一个实例,而不是一个数组。

你的类型不匹配,你的Conferencia构造函数接受一个MembroComiteOrganizacao数组,但你给它一个实例,而不是数组。

如果Conferencia类中只有这个构造函数,那么即使你的第一个代码被剪断也会失败,因为MembroComiteOrganizacao参数不是可选的,您不能向它传递值

另一个失败,因为该参数是一个数组,并且您正在传递单个对象


如果将最后一个参数定义为
membrocomiteorganizaco。。。membrocomiteorganizaco
而不是
membrocomiteorganizaco[]membrocomiteorganizaco
(即,您使用
..
而不是
[]
),这两个代码片段都应该可以工作。

如果这确实是您的Conferencia类中唯一的构造函数,那么即使您的第一个被剪断的代码也会失败,因为MembroComiteOrganizacao参数不是可选的,您不能向它传递值

另一个失败,因为该参数是一个数组,并且您正在传递单个对象


如果将最后一个参数定义为
membrocomiteorganizaco。。。membrocomiteorganizaco
而不是
membrocomiteorganizaco[]membrocomiteorganizaco
(即,您使用
..
而不是
[]
),您的两个代码片段都应该工作。

完成了静态会议[]会议={新会议(“国会1”,“亚伯拉罕”,2012,1,2,新会议组织[1](1,“里贾娜·卡里姆·奥布里恩”,“imc2oep-m。4oa@0o2z09s.com“,”Casa da Criança de Tyres“))”;现在的错误是“'),如果您不想将构造函数更改为使用
而不是
[]
,则必须将以下参数作为最后一个参数传递:
new membrocomiteorganizaco[]{new membrocomiteorganizaco(1,”里贾娜·卡里姆·奥布里恩,“imc2oep-m。4oa@0o2z09s.com“,“Casa da Criança de Tyres”)}
顺便说一句,如果在构造函数中将
[]
替换为
..
,则可以删除第一个(不使用最后一个参数)正如
告诉Java参数是可选的-因此Java将其视为一个数组,可以有0到多个元素(取决于您传递给它的MembroComiteOrganizationACAO实例的数量)。因此,这可能是您想要做的事情。done static Conferencia[/conferencias={new Conferencia(“Congresso 1”,“Abrantes”)“,2012,1,2,新成员组织[1](1,“Regina Kareem Obrien”,“imc2oep-m。4oa@0o2z09s.com“轮胎之家”(Casa da Criança de Tires);现在的错误是“')expected如果您不想将构造函数改为使用
..
而不是
[]
,那么您必须将以下参数作为最后一个参数传递:
newmembrocomiteorganizaco[]{newmembrocomiteorganizaco(1,“Regina Kareem Obrien”,“imc2oep-m”。4oa@0o2z09s.com“,“轮胎之家”}
Btw,如果在构造函数中将
[]
替换为
..
,则可以删除第一个(不接受最后一个参数),因为
..
告诉Java该参数是可选的-因此Java将其视为一个数组,可以包含0到多个元素(取决于您传递给它的MembroComiteOrganizaco实例的数量)。因此,这可能是您想要做的事情。