Cześć,
Mam problem z funkcyjnymi interfejsami w Javie.
Mam w zadaniu zrobić kilka takich funkcji, założenie jest takie:
Function <Integer, List<Integer>> funkcjaA;
Function <<List<Integer>, Integer> funckjaB;
Function <Integer, List<String>> funkcjaC;
Function <List<String>, Integer> funckjaD;
Chodzi o to, że można te funkcje wywołać tak:
List<Integer> = obiekt.metoda(funkcjaA);
Integer = obiekt.metoda(funkcjaA, funkcjaB);
List<String> obiekt.metoda(funkcjaA, funkcjaB, funkcjaC);
Integer = obiekt.metoda(funkcjaA, funkcjaB, funkcjaC, funkcjaD);
W zależności od tego jaki będzie argument to ma zwrócić... Niestety nie potrafię sobie z tym poradzić ponieważ nie wiem jak wywołać po sobie te funkcje w metodzie. Czytałem o andThen ale za nic nie przyjmuje mi argumentów...
Ważne jest to że funkcjaA przyjmuje za argument path do pliku czyli, funkcjaA wykonuje działanie na pliku, funkcjaB na wyniku funkcji A, funkcja C na wyniku funkcji B etc... Ważne jest to, że nie muszą być wykonane wszystkie po sobie.
Czy mógłbym prosić o jakąś podpowiedź? Troszeczkę goni mnie czas a ja siedzę i nic z tym nie moge zrobić. Moja metoda wyglada tak:
public <R> R metoda(Function<?, ?> ... tab) {
R result = null;
null = ... cos co wykona funkcje z tab;
return cos; // zwroci to co zwraca ostatnia dodana funkcja w tab
}