Problema com Map<Long, Boolean>

5 respostas Resolvido
thiago_silva_develop

Oi pessoal,

Seguinte, estou usando JSF e PrimeFaces, e eu estou tentando criar no ‘dataTable’ uma coluna com checkboxes para que o usuário selecione os registros, e clique em Deletar, para deletar os registros selecionados.

Pra isso, fiz da seguinte forma, criei um Map no meu ManagedBean:

E fiz o bind com o checkbox em uma coluna do meu dataTable dessa forma:

Dai quando se clicar em deletar executo o seguinte método:

public void deletar(){
	DAO<Pessoa> pessoaDao = new DAO<Pessoa>(Pessoa.class);
	
	for (Pessoa pessoa : pessoas) {
		if (selecionadas.get(pessoa.getId()))
			pessoaDao.remove(pessoa);
	}
}

Dai é aí que a porca torce o rabo, a validação “if (selecionadas.get(pessoa.getId()))” esta me retornando a exceção abaixo:

Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean

Mas não entendi o motivo, porque se o Value do meu Map é Boolean, porque não consigo utilizar este valor para fazer essa validação?

5 Respostas

TEC.ER

Voce esta tentando passa uma String pra um booolean.

thiago_silva_develop

Como o Value do meu Map é Boolean, porque tenta passar uma String para Boolean?

TEC.ER

O erro diz String nao pode ser convertido pra boolean…

campelo.m
Solucao aceita

Bom dia,

Utilize o “selecionadas.containsKey(pessoa.getId())”

thiago_silva_develop

Obrigado campelo.

Criado 16 de fevereiro de 2016
Ultima resposta 24 de fev. de 2016
Respostas 5
Participantes 3