Junior
Pasakykite apie lambda išraiškas ir nuorodų metodus Java programavimo kontekste ir jų taikymą Android kūrime.
sobes.tech AI
Atsakymas iš AI
Lambdų išraiškos yra trumpa notacija kuriant anonimines funkcijas. Jos leidžia perduoti funkcionalumą kaip metodo argumentą arba kurti funkciją be jos vardo nurodymo. Sintaksė: (parametrai) -> {kūnas}. Naudojamos įgyvendinti interfeisus su vienu abstrakčiu metodu (funkciniai interfeisai).
Naudojimas Android:
- įvykių tvarkytojai (paspaudimai, lietimo įvykiai).
- klausytojų interfeisų įgyvendinimas (pvz.,
OnClickListener,OnCompleteListener). - darbui su Stream API kolekcijų apdorojimui (filtravimas, transformavimas).
// Iki Java 8
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "Paspausta!", Toast.LENGTH_SHORT).show();
}
});
// Naudojant lambda išraišką
button.setOnClickListener(v -> {
Toast.makeText(context, "Paspausta!", Toast.LENGTH_SHORT).show();
});
Nuorodų metodai – tai glaustesnis būdas nurodyti esamus metodus ar konstruktorius jų vykdymo neįvykdant. Naudojami kaip lambda išraiškų pakaitalas, kurie tiesiog iškviečia vieną metodą.
Nuorodų metodų tipai:
- Nuoroda į statinį metodą:
Klasė::statinisMetodas - Nuoroda į objekto metodo egzempliorių:
objektas::metodoPavadinimas - Nuoroda į bet kurio objekto egzemplioriaus metodą tam tikro tipo:
Tipas::metodoPavadinimas - Konstruktorio nuoroda:
Klasė::new
Naudojimas Android:
- Sutrumpinti lambda išraiškas dirbant su klausytojais.
- Naudojant Stream API taikyti metodus elementams.
// Lambda išraiška
List<String> names = Arrays.asList("Alice", "Bob");
names.forEach(name -> System.out.println(name));
// Nuoroda
names.forEach(System.out::println);
Privalumai:
- Geresnė kodo skaitomumas, ypač paprastose operacijose.
- Kompaktiškesnis kodas.
- Naudojant Stream API, kolekcijų apdorojimas tampa funkcionalesnis ir efektyvesnis.