1
resposta

Aviso sobre casting redundant

Eu estou usando o intellij para fazer o curso e no momento de fazer a query baseado nos predicates

query.where( (Predicate[]) predicates.toArray(new Predicate[0]));

a IDE me da o seguinte aviso:

*Casting 'predicates.toArray(...)' to 'Predicate[]' is redundant *

Removi o casting e funcionou. Fiquei na dúvida se a IDE está correta e é realmente reduntante ou em determinadas situações o casting será necessário?

1 resposta

A necessidade do casting está diretamente ligada a entrada do método query.where() e a saída do método predicates.toArray().

O casting só é necessário quando a entrada do método é diferente da saída do outro método. Nesse caso predicates.toArray() devolve um Predicate[], que já é o tipo da entrada do query.where(), logo não há necessidade de casting.

Caso você fosse passar um int para um método que recebe double seria necessário inserir o (int) na frente, mas se o método recebe int (seu caso), não há necessidade, e o casting se torna redundante.

Espero ter ajudado.