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实例的数量)。因此,这可能是您想要做的事情。