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]));
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)