966120855

966120855



91


3.2. Abstrakcja struktur sterujących

Listing 3.8. Dopasowywanie warunków za pomocą klasy Case

public class Case<T> extends Tuple<Supplier<Boolean>. Supplier<Result<T»>{

private Case(Supplier<Boolean> booleanSupplier.

Supplier<Result<T» resultSupplier) { super(booleanSupplier. resultSupplier):

}

public static <T> Case<T> mcase(Supplier<Boolean> condition.

Supplier<Result<T» value) { return new Case<>(condition. value):

}

{

Zapis () -> true to funkcja anonimowa reprezentująca Supplier<Boolean>, który zawsze zwróci wartość true. Innymi słowy, jest to „leniwe" true. Tego rodzaju leniwość nie ma dużego sensu dla literału, ale trzeba dostosować się do warunków stawianych konstruktorowi DefaultCase.


public static <T> DefaultCase<T> mcase(Supplier<Result<T» value) return new DefaultCase<>(() -> true. value):    <-

}

private static class DefaultCase<T> extends Case<T> { private DefaultCase(Supplier<Boolean> booleanSupplier.

Supplier<Result<T» resultSupplier) { super(booleanSupplier. resultSupplier):

}

}

@SafeVarargs

public static <T> Result<T> match(DefaultCase<T> defaultCase.

Case<T>... matchers) { for (Case<T> aCase : matchers) {

if (aCase._l.get()) return aCase._2.get():

}

return defaultCase._2.get():

}



Wyszukiwarka

Podobne podstrony:
z7 (12) 204 Cz. 2.: VI. Struktura społeczna i anomia Analizę sposobów, za pomocą których struktura s
4.2.2 Realizacja programowa Sieć tworzona jest za pomocą klasy NetworkBuilder, z wykorzystaniem węzł
Image4 Przykłady układów sterujących zrealizowanych za pomocą pamięci stałych ■Lwiszanie przykładu,
skanuj0033 (26) KATIONY WIĘŻBOTWÓRCZE Tworzą własną strukturę (więźbę) szkła -spełniają warunki twor
skanuj0060 (57) Rozdział 3. ♦ Instrukcje sterujące i funkcje 73 można go przedstawić za pomocą instr
Skrypt PKM 1 00135 270 Rozwiązanie Zgodnie z warunkami zadania układ napędowy można przedstawić za p
Slajd15 UT9yWzajemne wykluczanie za pomocą semafora -struktura programu - pseudokod Ady 1:
Ćwiczenie 3. Operacje logiczne i struktury sterujące. ZTMAiPC dla podanych niżej wartości zmiennej i
Ćwiczenie 3. Operacje logiczne i struktury sterujące. ZTMAiPC clc; i=0; while i == 0 i=input([ Progr
Ćwiczenie 3. Operacje logiczne i struktury sterujące. ZTMAiPC niedokładnością. Z tego powodu, nawet
Ćwiczenie 3. Operacje logiczne i struktury sterujące.

więcej podobnych podstron