Search
Nastudujte si jak se používá typ Optional - typ, který může sloužit jako náhrada nulového ukazatele. Poté naimplementujte generické třídy MapFunction a FunctionComposition. První třída “zkonvertuje” mapování zadané v konstruktoru na parciální funkci (parciální funkce je funkce, která nemusí ke každému vstupu vrátit výstup), druhá složí dvě funkce a vyrobí z nich třetí.
Optional
MapFunction
FunctionComposition
Odevzdávaný kód (třídy MapFunction a FunctionComposition) uložte do svého repozitáře do souboru hw/Assignment11.java. Termín odevzdání je 25. 5. ve 24:00.
hw/Assignment11.java
import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.collect.ImmutableMap; class MapFunction<Input, Output> implements Function<Input, Optional<Output>> { final ImmutableMap<Input, Output> map; public MapFunction(ImmutableMap<Input, Output> map) { this.map = map; } @Override public Optional<Output> apply(Input i) { // vas kod } } class FunctionComposition<A, B, C> implements Function<A, Optional<C>> { final Function<A, Optional<B>> firstFunction; final Function<B, Optional<C>> secondFunction; public FunctionComposition(Function<A, Optional<B>> firstFunction, Function<B, Optional<C>> secondFunction) { this.firstFunction = firstFunction; this.secondFunction = secondFunction; } @Override public Optional<C> apply(A a) { // vas kod } }
~~DISCUSSION:ON~~