Java-da işleýän interfeýs, diňe 1 abstrakt usuly öz içine alýan interfeýsdir. Esasy maksat, lambda aňlatmalarynda we usul salgylanmalarynda ulanmak.
1 abstrakt usulyň bolmagy ýeke-täk şert, şonuň üçin işleýän interfeýs
Men olar hakda jikme-jik durup geçmerin. Iň köp ulanylýanlaryň: Sarp ediji <T> , Funksiýa <T, R> , Predikat <T> , üpjün ediji <T> , UnaryOperator <T> we olaryň Bi görnüşleri. Has giňişleýin maglumatlary resminamalar sahypasynda tapyp bilersiňiz: Package java.util.function
default
usullary hem öz içine alyp biler static
. Funksiýa interfeýsine @FunctionalInterface düşündirişini goşup bilersiňiz. Bu hökmany däl, ýöne bu düşündiriş bar bolsa, 1 abstrakt usul bar bolsa, kod düzülmez. @FunctionalInterface goşmak maslahat berilýär. Bu, interfeýsi kimdir biriniň interfeýsine täze abstrakt usul goşjakdygyna we işlemezliginden gorkman, lambda aňlatmalarynda interfeýsi ulanmaga mümkinçilik berer. “Java” -da ýerleşdirilen funksional interfeýsler bar java.util.function
.
Başga näme okamaly: |
---|
import java.util.function.Predicate;
//Определяем свой функциональный интерфейс
@FunctionalInterface
interface MyPredicate {
boolean test(Integer value);
}
public class Tester {
public static void main(String[] args) throws Exception {
MyPredicate myPredicate = x -> x > 0;
System.out.println(myPredicate.test(10)); //true
//Аналогично, но используется встроенный функциональный интерфейс java.util.function.Predicate
Predicate<Integer> predicate = x -> x > 0;
System.out.println(predicate.test(-10)); //false
}
}
Javaöne Java dil spesifikasiýasynda beýan edilen bir inçe nokat bar: "interfeýsler Obýektden miras almaýar, tersine, Obýekt bilen birmeňzeş usullaryň köpüsini aç-açan yglan edýär." Bu, funksional interfeýsleriň synpda kesgitlenen abstrakt usullary goşup biljekdigini aňladýar Object
. Aşakdaky kody dogry, düzmek ýa-da iş wagty ýalňyşlyklary bolmaz:
@FunctionalInterface
public interface Comparator<T> {
int compare(T o1, T o2);
boolean equals(Object obj);
// другие default or static методы
}
Söhbetdeşlik wagtynda seresap boluň! Sag boluň!
GO TO FULL VERSION