Java.lang.ArrayStoreException

3 respostas
G

Estou começando c/ java e tive um prolema causado por java.lang.ArrayStoreException.
A linha referente a esse erro é a seguinte: retVal.getCbo()[index++] = new Cbo(codigo.longValue(), descricao, (String[])sinonimos.toArray(new String[0]));

Aqui segue meu código:

public br.com.bancopecunia.administracao.cbo.service.Cbos carregar() throws java.rmi.RemoteException {

try {

Cbos retVal = new Cbos();

retVal.setCbo(new Cbo[AdministracaoCBOServiceFactory.getInstance().create().carregar().size()]);

int index = 0;

Iterator i = AdministracaoCBOServiceFactory.getInstance().create().carregar().iterator();

while (i.hasNext()) {

br.com.bancopecunia.common.adt.cbo.CBO cbo = (br.com.bancopecunia.common.adt.cbo.CBO) (i.next());

Long codigo = cbo.getCodigo();

String descricao = cbo.getDescricao();

Collection sinonimos = null;

for (int j = 0; j < cbo.getSinonimos().size(); j++) {

sinonimos = new ArrayList(cbo.getSinonimos().size());

sinonimos.add(cbo.getSinonimos());

}

retVal.getCbo()[index++] = new Cbo(codigo.longValue(), descricao, (String[])sinonimos.toArray(new String[0]));      }

return retVal;

}catch (Exception ex) {

throw tratar(ex);

}

}

O construtor Cbo é do seguinte tipo: Cbo(long, java.lang.String, java.lang.String[]), por isso coloquei dessa maneira (String[])sinonimos.toArray(new String[0]), se alguém poder me ajudar c/ esse erro, ou me passar outra maneira de realizar essa conversão agradeço.

3 Respostas

Alkamavo

ASSIM É QUE SE POSTA!!!

Estou começando c/ java e tive um prolema causado por java.lang.ArrayStoreException.
A linha referente a esse erro é a seguinte:

retVal.getCbo()[index++] = new Cbo(codigo.longValue(), descricao, (String[])sinonimos.toArray(new String[0]));
Aqui segue meu código:

public br.com.bancopecunia.administracao.cbo.service.Cbos carregar() throws java.rmi.RemoteException {
try {
Cbos retVal = new Cbos();
retVal.setCbo(new Cbo[AdministracaoCBOServiceFactory.getInstance().create().carregar().size()]);
int index = 0;
Iterator i = AdministracaoCBOServiceFactory.getInstance().create().carregar().iterator();
while (i.hasNext()) {
br.com.bancopecunia.common.adt.cbo.CBO cbo = (br.com.bancopecunia.common.adt.cbo.CBO) (i.next());
Long codigo = cbo.getCodigo();
String descricao = cbo.getDescricao();
Collection sinonimos = null;
for (int j = 0; j < cbo.getSinonimos().size(); j++) {
sinonimos = new ArrayList(cbo.getSinonimos().size());
sinonimos.add(cbo.getSinonimos());
}
retVal.getCbo()[index++] = new Cbo(codigo.longValue(), descricao, (String[])sinonimos.toArray(new String[0])); }
return retVal;
}catch (Exception ex) {
throw tratar(ex);
}
}

O construtor Cbo é do seguinte tipo:

Cbo(long, java.lang.String, java.lang.String[]), por isso coloquei dessa maneira

codesinonimos.toArray(new String[0]), [/code]se alguém poder me ajudar c/ esse erro, ou me passar outra maneira de realizar essa conversão agradeço.

G

Td bem, desculpe ter postado na formatação errada, foi o 1º post q fiz. Mas e qto uma solução vc tb ñ tem nenhuma dica p/ dar?

B

Tenta sinônimos.size() no lugar do zero dentro do new String0

Criado 17 de junho de 2008
Ultima resposta 17 de jun. de 2008
Respostas 3
Participantes 3