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]));
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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]));
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)