Sobes.tech
Middle

Mis on lambda väljendid Java's?

sobes.tech AI

Vastus AI-lt

Java lambda-väljendus on anonüümne funktsioon. See võimaldab vaadata funktsionaalsust kui meetodi argumenti või kui koodi kui andmeid.

Peamised omadused:

  • Anonüümsus: Ei oma nime.
  • Funktsionaalne liides: Lambda-väljendus on alati seotud funktsionaalse liidesega (liides, millel on üks abstraktne meetod).
  • Süntaks: (parameetrid) -> { keha }

Näide kasutamisest funktsionaalse liidese Consumer'iga:

import java.util.function.Consumer;

// Funktsionaalne liides Consumer<T> omab ühte abstraktset meetodit accept(T t)
Consumer<String> tervitus = (nimi) -> {
    System.out.println("Tere, " + nimi);
};

tervitus.accept("Maailm"); // Väljund: Tere, Maailm

Näide kasutamisest liidese Runnable'iga:

// Liides Runnable omab ühte abstraktset meetodit run()
Runnable ülesanne = () -> {
    System.out.println("Ülesanne täidetakse eraldi lõimes");
};

uus Thread(ülesanne).start(); // Ülesande käivitamine uues lõimes

Süntaksivõimalused:

  • Ilma parameetriteta: () -> { System.out.println("Tere"); }
  • Üks parameeter ilma sulgudeta: nimi -> System.out.println("Tere, " + nimi)
  • Mitme parameetriga sulgudes ja tüüpidega: (int a, int b) -> { return a + b; }
  • Mitme parameetriga ilma tüüpide väljundita: (a, b) -> a + b
  • Ühel real ilma return'ita: (a, b) -> a + b
  • Mitmerealine keha sulgude ja return'iga (vajadusel): (a, b) -> { int summa = a + b; return summa; }

Lambda-väljendid muudavad koodi kompaktsemaks, loetavamaks ning võimaldavad kasutada funktsionaalset programmeerimist Java-s.