Java zapewnia interfejs funkcjonalny o nazwie predykat, który reprezentuje predykat funkcji o wartości boolowskiej z jednym argumentem. Java.Util.Pakiet funkcji obsługuje interfejs predykatu i zawiera test metody funkcjonalnej (). Predykat funkcjonalny interfejs poprawia czytelność i skalowalność oprogramowania i upraszcza go do podziału jednostek do testowania. Prototyp interfejsu predykatu w Javie jest taki jak ten „predykat”, w którym „t” jest oznaczone jako pojedynczy parametr wytwarzający wynik logiczny. Interfejs predykatu Java ma niektóre metody zbadane poniżej z przykładową implementacją.
Przykład 1
Tworzenie interfejsu predykatu Java pokazano w poniższym przykładzie. Predykaty Java ma abstrakcyjną metodę zwaną testem (obiekt), która ocenia predykat na obiekcie jako wejście.
Najpierw zdefiniowaliśmy interfejs predykatu ze słowem kluczowym „predykatem”, który przyjmuje typ „liczby całkowitych” jako pojedynczy argument. Następnie utworzyliśmy obiekt „P” i określiliśmy warunek predykatu, który zweryfikuje, że dana wartość spełnia się z predykatem i zwraca typ boolean. Następnie, w ramach predykatu „test ()”, wartość liczb całkowita jest przypisana do oceny predykatu tej wartości.
„Fałsz” jest wyjściowy, ponieważ predykat to „12> 15”.
Przykład 2
Wspomniany program wyjaśnia tworzenie predykatu w Javie. Teraz prosty łańcuch predykatu jest zaimplementowany w poniższym przykładowym programie, który filtruje liczby przy użyciu operatorów porównawczych „większych niż” i „mniej niż”:
Stworzyliśmy łańcuch interfejsu predykatu, deklarując jego obiekty „P1” i „P2”. „P1” otrzymuje predykat, który oceni dla większej niż operator. Obiekt „P2” przypisuje się znak mniej niż operator do oceny. Następnie zdefiniowaliśmy obiekt „RES1”, w którym wartość jest określona w metodzie testu () w celu wygenerowania wyniku boolowskiego po ocenie obu określonych predykatów. Operacja drukowania Java wydrukuje wyniki wartości logicznej.
Pierwsze wyjście predykate jest prawdziwe, ponieważ wartość predykatu jest większa niż wartość testu predykatu. Następne wyjście predykate ma wartość „fałszywą”, ponieważ „7” jest mniejsza niż „10”.
Przykład 3
Interfejs predykatu Java jest również wyposażony w różne metody. Zastosowana jest tutaj metoda predykatu isequal (), która sprawdza, czy dwa obiekty są równoważne wartości określonej jako argument i zwraca predykat zgodnie z warstwem.
Zdefiniowaliśmy interfejs predykatu, w którym zadeklarowany jest obiekt „PR”. Obiekt „PR” jest inicjowany z predykatem.Metoda isequal (). Wartość ciągu jest przechowywana w metodzie isequal (), która ma być porównywana z inną wartością predykatu. W tym celu nazwaliśmy metodę testu (), w której druga wartość jest przekazywana. Wartość ta zostanie porównana z wartością predykatu przekazaną jako argument w metodzie isequal () i generuje wyniki porównania jako wartość logiczna.
Należy zauważyć, że wynik poprzedniego programu jest predykat „fałszywy”, ponieważ metoda predykatu jest wrażliwa na przypadek.
Przykład 4
Istnieje inna metoda interfejsu predykatu o nazwie Predykat.Lub(). Predykat.lub () metoda działa podobnie do operatora „lub”. Zwróci to prawdę, nawet jeśli jedna lub dwie wartości predykatu są prawdziwe, a druga jest fałszywa.
Stworzyliśmy obiekt predykatu „element1” i „element2”, w którym podano predykat ciągu. Zastosowaliśmy metodę Contrains () do określenia ciągów w tych obiektach predykatów. Następnie nazwaliśmy predykat.lub () metoda z metodą testu (), w której ustawiona jest fraza ciągu. Z tych fraz stringowych predykat.lub () metoda znajduje podjazdy określone w obiektach predykatów i generuje wartości logiczne.
Z następującego wyjścia predykatu uzyskuje się z predykatu.lub () operacja:
Przykład 5
Strumień elementów z danej wartości predykatu można odfiltrować metodą interfejsu predykat. Ta metoda akceptuje jedynie wartość predykatu jako argument i tworzy nowy strumień zawierający początkowe elementy strumienia, które pasują do danego predykatu.
Utworzyliśmy obiekt listy „MyList” i ustawiliśmy listę tablic zawierających losowe wartości liczb całkowitych. Następnie nazwaliśmy metodą strumienia predykatu () do uzyskania elementu strumienia z tablicy, która jest większa niż wartość predykatu. Predykat jest przekazywany jako wejście w metodzie Filter (). Strumień filtrowanych elementów zostanie zebrany, a metoda tolist () przekształca te elementy w format listy, który zostanie wydrukowany na ekranie.
Strumień wartości liczb całkowitych jest uzyskiwany jako wyjście z metody Predicate Filter ().
Przykład 6
Jak predykat.lub () metoda, predykat Java zapewnia również predykat.i () metoda. Zapewnia złożony predykat, który logicznie i wyniki obu predykatów.
Ustawiliśmy interfejs predykatu, który przyjmuje typ argumentu „Liczba całkowita”. Następnie zdefiniowaliśmy obiekt interfejsu predykatu „Greater Than” i „Lesshan”, w którym predykat jest ustawiany dla większej niż operacja i mniej niż operacja. Następnie skomponowaliśmy dwa poprzednie predykaty przy użyciu metody i (). Metoda i () jest stosowana z metodą testu () do testowania z wartością określoną jako parametr.
Metoda i () zwraca prawdziwą wartość logicznego, ponieważ wartość „30” jest większa niż „15” i mniejsza niż „15”.
Przykład 7
Teraz metoda predykatu negate () służy do zebrania wszystkich wartości, które nie spełniają z góry określonych kryteriów.
Stworzyliśmy zmienną predykatu „startswithletter” i dostarczyliśmy predykat, w którym wywołuje startswith (). Ta metoda nie zwróci elementu, który zaczyna się od litery „J”. Następnie ustanowiliśmy listę znaków wyższych. Następnie wywołaliśmy metodę predykatu negate (), która zbiera znaki, które nie zaczynają się od litery „j” i generuje strumień pozostałych znaków w formie listy.
Lista wyjściowa pokazuje, że wartości zaczęły się od innej postaci, z wyjątkiem postaci „J”.
Wniosek
Interfejs predykatu Java jest kluczowym elementem testowania oprogramowania. Deweloperzy używają głównie interfejsów predykatów dla każdej aktywności, która obejmuje analizę obiektów według z góry określonych standardów. Zastosowaliśmy różne metody interfejsu predykatu i zaprezentowaliśmy, w jaki sposób te metody działały w Javie. Metody te obejmują domyślną metodę logiczną i inne predykate funkcjonalne.