Jak w temacie.
Jak jest z tym używaniem lambd w Android Studio ( nie tylko dla interfejsów jak na tym przykładzie, ale ogólnie, kiedy tak, kiedy nie).
Czy wpychacie je praktycznie wszędzie w definiowaniu pojedyńczych interfejsów, czy może wolicie nie używać i widzieć całą definicję w kodzie dla łatwiejszego połapania się co tam jest?
Dla przykładu, snapshot dla obiektu Google Maps.
GoogleMap.SnapshotReadyCallback callback1 = new GoogleMap.SnapshotReadyCallback() {
@Override
public void onSnapshotReady(Bitmap snapshot) {
try {
// capture screenshot
} catch (Exception e) {
e.printStackTrace();
}
}
};
GoogleMap.SnapshotReadyCallback callback2 = (snapshot) -> {
try {
// capture screenshot
} catch (Exception e) {
e.printStackTrace();
}
};
O ile w przypadkach typowych zastosowań jak dla onClick(), od razu wiadomo co kryje się pod wyrażeniem lambda, o tyle dla jakichś bardziej nietypowych interfejsów ( chociażby pisanych od zera przez nas) trzeba "wiedzieć" co tam jest. Nie jest to jakoś problematyczne, ale chciałem sobie zaimplementować trochę tych wyrażeń w projekcie (zacznę od tego rodzaju definicji interfejsów) i nie chcę przegiąć w drugą stronę, że wepchnę je wszędzie, nawet tam gdzie nie powinno ich być.
W tym momencie szukam/czytam sobie o nich, ale może ktoś będzie miał coś ciekawego do powiedzenia i tutaj.