Estou fazendo uma aplicação web usando NetBeans IDE e JSF.
É um leilão on line.
Eu crio um leilão e tento adicioná-lo no arrayList, todavia não está adicionando. Abaixo segue o código. O que estou fazendo de errado?
[b]private ArrayList arrayLeilao = new ArrayList ();
publicvoidcriaLeilao(Produtoprod){if(verificaLeilao(prod)==false){doubleprecoIn=prod.getPreco();Leilaoleilao=newLeilao(prod,precoIn,null);arrayLeilao.add(leilao);}}// retorn falso se ainda não existe leilão para determinado produtopublicbooleanverificaLeilao(Produtoprod){if(arrayLeilao.isEmpty()){returnfalse;}else{for(intcont=0;cont<arrayLeilao.size();cont++){if(arrayLeilao.get(cont).getProduto().equals(prod)){returntrue;}}returnfalse;}}[/b]
por favor. use as tags [ code] quando posta código… não a tag [b]
agora vamos la… quando você faz isso
if(verificaLeilao(prod)==false){
você chama um método que retorna um boolean…
mas do jeito que está seu if, ele está estranho
se ele tem que retornar true faça assim
if(verificaLeilao(prod)){
senão, se tem que retornar false pra entrar no if deixe como está, ou faça assim:
if(!verificaLeilao(prod)){
H
heniojunior
ok, fiz a alteração, mas continua sem adicionar o leilao no array.
Fiz a depuração, ele entra no if(!verificaLeilao(prod)), altera o valor do double precoIn, cria o leilao, mas não adiciona no array. Abaixo do código.
privateArrayList<Leilao>arrayLeilao=newArrayList<Leilao>();publicvoidcriaLeilao(Produtoprod){if(!verificaLeilao(prod)){doubleprecoIn=prod.getPreco();Leilaoleilao=newLeilao(prod,precoIn,null);arrayLeilao.add(leilao);}}// retorn falso se ainda não existe leilão para determinado produtopublicbooleanverificaLeilao(Produtoprod){if(arrayLeilao.isEmpty()){returnfalse;}else{for(intcont=0;cont<arrayLeilao.size();cont++){if(arrayLeilao.get(cont).getProduto().equals(prod)){returntrue;}}returnfalse;}}
R
Rodrigo_Sasaki
ta… 2 coisas:
1 - ele precisa retornar false mesmo? é pra entrar no if somente se a lista estiver vazia? só vai existir no máximo um dado na lista?
2 - poste o main que está utilizando esses métodos, pra gente tentar entender melhor o que está havendo.
H
heniojunior
Seguinte Digao, o método criaLeilao é executado. Dentro do criaLeilao chama o verificaLeilao, que retorna true se já existe um leilão para determinado produto e false se ainda não existe leilão. Se não existir leilão, ele cria um novo leilao para o produto, portanto, deve entrar no if realmente se retornar false do verificaLeilao.
É uma aplicação Web, usando Java Server Faces, portanto não tem main, os métodos são chamados através do xhtml.
Com a depuração, já vi que o leilão é criado, todavia a linha
arrayLeilao.add(leilao);
não está adicionando o leilao no array. E realmente não vejo o porquê.