Os exemplos anteriores usaram interfaces funcionais definidas manualmente para ilustrar os conceitos básicos.
No entanto, o JDK 8 introduziu o pacote java.util.function, que fornece interfaces funcionais predefinidas para facilitar o uso.
Pacote java.util.function
Oferece diversas interfaces funcionais prontas para uso.
Reduz a necessidade de criar interfaces personalizadas.
Benefícios
Simplifica o desenvolvimento.
Padroniza o uso de interfaces funcionais em projetos.
Facilita a integração com APIs modernas do Java.
Uso da Interface Predicate
Define um método abstrato chamado test(T val).
Retorna true se o valor atender a uma condição ou restrição específica.
Exemplo de Uso
Implementa uma expressão lambda para verificar se um número é par.
A expressão lambda é atribuída a um objeto do tipo Predicate.
Funcionamento do Método test
Avalia o valor fornecido como argumento.
Retorna true se o número for par, caso contrário, retorna false.
Benefício
- Permite usar condições dinâmicas de forma simples e reutilizável em expressões lambda.
// Usa a interface funcional interna Predicate.
// Importa a interface Predicate.
import java.util.function.Predicate;
class UsePredicateInterface {
public static void main(String args[])
{
// Esta expressão lambda usa Predicate<Integer> para
// determinar se um número é par.
Predicate<Integer> isEven = (n) -> (n %2) == 0;
if(isEven.test(4)) System.out.println("4 is even");
if(!isEven.test(5)) System.out.println("5 is odd");
}
}
Top comments (0)