Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

new Predicate[0]

No video ele está explicando, deu um efeito especial do chapolin, e no código apareceu um new Predicate[0], tá funcionando normal, porém eu queria saber o que é isso.

query.where((Predicate[]) predicates.toArray(new Predicate[0]));
1 resposta
solução!
predicates.toArray(new Predicate[0])

predicates é uma Collection (uma lista ou conjunto). Collection tem um método para se transformar em array, que é o toArray.

O toArray pede como argumento uma referência do mesmo tipo de array que você deseja criar. Como a Collection é do tipo Predicate, o instrutor usou new Predicate[0]. Então vai ser retornado um array de Predicate.

O 0 dentro dos colchetes é o tamanho do array. Como o método toArray só precisa saber o tipo, 0 pode ser informado para indicar que o método crie um novo array e copie tudo para dentro dele. Isso acontece porque dentro de um array de tamanho 0 não cabe nada, então o método terá de recriar.

(Esse 0 pode ser substituído pelo tamanho da coleção, para não precisar criar o array duas vezes: o vazio e o cheio)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software