Cześć
Stworzyłem klasę IntegerArrayProceeder, która ma przetwarzać wcześniej przekazaną tablicę integerów poprzez lambda wyrażenia
package PD;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
/**
* Created by Marek on 2016-07-25.
*/
public class IntegerArrayProceeder {
private Integer[] arrayPriv;
public IntegerArrayProceeder(Integer[] arrayToProceed) {
arrayPriv = arrayToProceed;
}
/* filtruje elementy tablicy podanym lambda wyrazeniem, jezeli dany element nie spełnia kryterium
wtedy wstawiamy null w to miejsce*/
public void filter(Predicate<Integer> pred) {
for (int i = 0; i < arrayPriv.length; i++) {
if (pred.test(arrayPriv[i])) {
System.out.println("continue");
continue;
} else {
arrayPriv[i] = null;
System.out.println("null");
}
}
}
/*
przetwarza i modyfikuje kolejne elementy tablicy podanym lambda wyrazeniem
*/
public void mapEvery(Function<Integer, Integer> func) {
for (int i = 0; i < arrayPriv.length; i++) {
if (arrayPriv[i] != null) {
func.apply(arrayPriv[i]);
System.out.println("okok");
}else {
System.out.println("null");
}
}
}
}
teraz klasa testowa:
package PD;
import java.util.function.Predicate;
import java.util.function.Function;
/**
* Created by Marek on 2016-07-25.
*/
public class MainZad2 {
public static void main(String[] args) {
Integer[] arrayToProceed = {1, 2, 3, 4, 5, 6};
IntegerArrayProceeder iProceeder = new IntegerArrayProceeder(arrayToProceed);
iProceeder.filter((num) -> num % 2 == 0);
System.out.println();
iProceeder.mapEvery((num) -> num + 3);
System.out.println();
System.out.println();
System.out.println();
iProceeder.filter((num) -> num % 2 == 0).mapEvery((num) -> num + 3); // ta linijka nie działa
}
}
Mam za zadanie napisać tak program, abym mógł wywoływać metody w ciągu, tutaj nie wiem jak to zrobić, pojedyńczo nie mam z tym żadnego problemu
Liczę na wskazówki, a nie na gotowe rozwiązanie