Interfaces funcionais

Definição de Interface Funcional

Contém apenas um método abstrato.
Pode ter métodos padrão e/ou static.
Método abstrato não especifica implementação.

interface MyValue {
double getValue();
}

Lembrete: Em interfaces funcionais, o modificador ab…


This content originally appeared on DEV Community and was authored by Java para Iniciantes (Oracle)

Definição de Interface Funcional

  • Contém apenas um método abstrato.

  • Pode ter métodos padrão e/ou static.

  • Método abstrato não especifica implementação.

interface MyValue {
double getValue();
}

Lembrete: Em interfaces funcionais, o modificador abstract não é necessário explicitamente, pois o Java assume que qualquer método que não tenha implementação em uma interface é automaticamente abstrato.

Atribuindo uma Lambda a uma Interface Funcional

MyValue myVal = () -> 98.6;

O tipo de retorno e os parâmetros da lambda devem ser compatíveis com o método abstrato.

Chamada do método abstrato:

System.out.println("A constant value: " + myVal.getValue());

Resultado: 98.6.

Interfaces Funcionais com Parâmetros

interface MyParamValue {
double getValue(double v);
}

Lambda com cálculo do recíproco:

MyParamValue myPval = (n) -> 1.0 / n;
System.out.println("Reciprocal of 4 is " + myPval.getValue(4.0));

  • Resultado: 0.25.

Inferência de Tipos

Tipo do parâmetro inferido pelo contexto:
(n) -> 1.0 / n; // Tipo inferido como double

Tipo explicitamente declarado (opcional):
(double n) -> 1.0 / n;

Regras de Compatibilidade

  • O tipo e número de parâmetros na expressão lambda devem corresponder ao método abstrato.

(int x, int y) -> x + y;

Conclusão

  • Interfaces funcionais possibilitam o uso de lambdas.

  • Expressões lambda fornecem uma implementação concisa para o método abstrato.

  • Contextos de tipo de destino e compatibilidade de tipos são cruciais para seu uso.


This content originally appeared on DEV Community and was authored by Java para Iniciantes (Oracle)


Print Share Comment Cite Upload Translate Updates
APA

Java para Iniciantes (Oracle) | Sciencx (2025-01-06T22:50:16+00:00) Interfaces funcionais. Retrieved from https://www.scien.cx/2025/01/06/interfaces-funcionais/

MLA
" » Interfaces funcionais." Java para Iniciantes (Oracle) | Sciencx - Monday January 6, 2025, https://www.scien.cx/2025/01/06/interfaces-funcionais/
HARVARD
Java para Iniciantes (Oracle) | Sciencx Monday January 6, 2025 » Interfaces funcionais., viewed ,<https://www.scien.cx/2025/01/06/interfaces-funcionais/>
VANCOUVER
Java para Iniciantes (Oracle) | Sciencx - » Interfaces funcionais. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/01/06/interfaces-funcionais/
CHICAGO
" » Interfaces funcionais." Java para Iniciantes (Oracle) | Sciencx - Accessed . https://www.scien.cx/2025/01/06/interfaces-funcionais/
IEEE
" » Interfaces funcionais." Java para Iniciantes (Oracle) | Sciencx [Online]. Available: https://www.scien.cx/2025/01/06/interfaces-funcionais/. [Accessed: ]
rf:citation
» Interfaces funcionais | Java para Iniciantes (Oracle) | Sciencx | https://www.scien.cx/2025/01/06/interfaces-funcionais/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.