Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Dominando Expressões Lambda no Java 8: Guia de Programação Funcional

Expressões lambda foram introduzidas no Java 8 e são consideradas o maior recurso do Java 8. Lambdas facilitam programação funcional e simplificam muito o desenvolvimento.

Sintaxe

Uma expressão lambda é caracterizada pela seguinte sintaxe:

parameter -> expression body

Características Importantes

Exemplo de Expressões Lambda

Crie o seguinte programa Java em C:\JAVA.

Java8Tester.java

public class Java8Tester {
    public static void main(String args[]) {
        Java8Tester tester = new Java8Tester();

        // Com declaração de tipo
        MathOperation addition = (int a, int b) -> a + b;
        // Sem declaração de tipo
        MathOperation subtraction = (a, b) -> a - b;
        // Com return e chaves
        MathOperation multiplication = (int a, int b) -> { return a * b; };
        // Sem return e sem chaves
        MathOperation division = (int a, int b) -> a / b;

        System.out.println("10 + 5 = " + tester.operate(10, 5, addition));
        System.out.println("10 - 5 = " + tester.operate(10, 5, subtraction));
        System.out.println("10 x 5 = " + tester.operate(10, 5, multiplication));
        System.out.println("10 / 5 = " + tester.operate(10, 5, division));

        // Sem parênteses
        GreetingService greetService1 = message -> System.out.println("Hello " + message);
        // Com parênteses
        GreetingService greetService2 = (message) -> System.out.println("Hello " + message);

        greetService1.sayMessage("Mahesh");
        greetService2.sayMessage("Suresh");
    }

    interface MathOperation { int operation(int a, int b); }
    interface GreetingService { void sayMessage(String message); }

    private int operate(int a, int b, MathOperation mathOperation) {
        return mathOperation.operation(a, b);
    }
}

Verifique o Resultado

Compile com javac:

C:\JAVA> javac Java8Tester.java

Execute:

C:\JAVA> java Java8Tester

Saída Esperada

10 + 5 = 15
10 - 5 = 5
10 x 5 = 50
10 / 5 = 2
Hello Mahesh
Hello Suresh

Pontos Importantes:

Escopo

Usando lambda, você pode referenciar qualquer variável final ou effectively final (atribuída apenas uma vez). Lambda lança erro de compilação se variável for atribuída segunda vez.

Exemplo de Escopo

public class Java8Tester {
    final static String salutation = "Hello! ";

    public static void main(String args[]) {
        GreetingService greetService1 = message -> System.out.println(salutation + message);
        greetService1.sayMessage("Mahesh");
    }

    interface GreetingService { void sayMessage(String message); }
}

Saída

Hello! Mahesh

Java

  1. Dominando Operadores Java: Tipos, Sintaxe e Exemplos Práticos
  2. Entendendo Expressões, Instruções e Blocos em Java
  3. Comentários em Java: Tipos, Uso e Boas Práticas
  4. Dominando o Loop for Aprimorado em Java: Sintaxe, Exemplos e Boas Práticas
  5. Dominando Strings em Java: Criação, Métodos e Boas Práticas
  6. Dominando Interfaces em Java: Conceitos, Implementação e Boas Práticas
  7. Dominando Classes Internas Anônimas em Java: Definição, Sintaxe e Exemplos Práticos
  8. Dominando Try-With-Resources em Java: Gerenciamento Automático de Recursos Explicado
  9. Anotações em Java Explicadas: Tipos, Posicionamento e Exemplos Práticos
  10. Asserções em Java: Guia Prático para Detectar Bugs e Garantir Confiabilidade do Código