Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
Java

Java Functional Interface Nedir?

Paylaş

Bu yazıda, Java 8 ile birlikte gelen Functional Interface özelliğinin ne olduğu ve nasıl kullanılacağına dair açıklamalar yapacağım. Ayrıca, bu özelliğin pratikte nasıl kullanılabileceğini gösteren örnekler de paylaşacağım.

İçindekiler

Toggle
  • Nedir?
  • Kullanımı
  • Java’da Functional Interfaceler
    • Consumer
      • Consumer Örneği
    • Predicate
      • Predicat Örneği
    • Function 
      • Function Örneği
    • Supplier
      • Supplier Örneği

Nedir?

Java’da bir fonksiyonel interface, bir abstract metot bulunan bir interface’dir. içeren bir arayüzdür. Functional interface’ler ile birlikte lambda ifadeleri de kullanabilir.

Kullanımı

Java’da bir fonksiyonel interface oluşturmak için, bir interface tanımlamanız gerekir ve bu interface sadece bir tane abstract metot tanımlamanız gerekir. @FunctionalInterface anotasyonunu belirterek fonksiyonel bir interface olduğunu belirtiyoruz.

@FunctionalInterface
public interface InterfaceExample {
    int apply(int x, int y);
}Code language: PHP (php)

Tanımlamasını yaptığımız fonkisyonel interface’yi lambda expression sayesinde kullanarak çağırabiliyoruzç

InterfaceExample sum = (x, y) -> x + y;
int result = sum.apply(3, 4);  

Java’da Functional Interfaceler

Java’da bazı hazır functional interfaceler barındırmaktadır.

Consumer

Consumer fonksiyonel interface, bir veri girişi olan ve geri bir değer döndürmeyen sınıftır. Bu sayede bir veri yapısını gezinebilir ve her bir öğeyi bir işlev gerçekleştirerek işleyebilirsiniz.

Consumer Örneği

public class Main {
  public static void main(String[] args) {
    
    List<String> list = List.of("burak", "ahmet", "mehmet");

    Consumer<String> printItem = item -> System.out.println(item);
    list.forEach(printItem);
  }
}
Code language: PHP (php)

Consumer interfacesi oluşturduk ve liste içindeki tüm öğeleri yazdıran bir metot yazdık. Çıktı aşağıdaki gibi olacaktır.

burak
ahmet
mehmet

Predicate

Predicate bir girdi alır ve bir boolean değeri döndürür.

Predicat Örneği

public class Main {
  public static void main(String[] args) {
    Predicate<Integer> pozitifMi = (sayi) -> sayi > 0;

    int[] sayilar = {-1, 0, 1, 2, 3};
    for (int sayi : sayilar) {
      if (pozitifMi.test(sayi)) {
        System.out.println(sayi + " pozitiftir");
      }
    }
  }
}
Code language: JavaScript (javascript)

Bir sayının pozitif olup olmadığı kontrol eden bir functional interface yazdık ve bu metot sayesinde liste içerisindeki değerleri kontrol edebiliyiriz.

Function 

Function bu tür bir fonksiyonel interfacedir ve bir girdi alır ve bir çıktı döndürüren işleve sahiptir.

Function Örneği

Mutlak değerini alan bir fonksiyonel interface yapıyalım. Bir çıktı döndüren Functiondan faydalanıyoruz.

public class Main {
  public static void main(String[] args) {
    Function<Integer, Integer> abs = (sayi) -> Math.abs(sayi);

    int[] numbers = {-1, 0, 1, 2, 3};
    for (int sayi : sayilar) {
      System.out.println(sayi + " mutlak değeri " + abs.apply(sayi));
    }
  }
}
Code language: PHP (php)

Supplier

Supplier interface bir değer döndürmeyen bir metotdur.

Supplier Örneği

public class Main {
  public static void main(String[] args) {

    Random random = new Random();
    Supplier<Integer> randomSupplier = () -> random.nextInt();
    System.out.println(randomSupplier.get());
  }
}
Code language: JavaScript (javascript)

Tags:

ConsumerFunctionFunctional Interfacejava 8KullanımÖrneklerPredicateSupplier

Paylaş

Diğer Yazılar

Spring Boot Dersleri
Previous

Spring Boot Projelerinde Tomcat Yerine Jetty Kullanmak

just Spring Boot Command Tool
Next

just: Spring Boot Geliştiricileri İçin Komut Aracı

Next
just Spring Boot Command Tool
17 Aralık 2022

just: Spring Boot Geliştiricileri İçin Komut Aracı

Previews
02 Aralık 2022

Spring Boot Projelerinde Tomcat Yerine Jetty Kullanmak

Spring Boot Dersleri

2 Comments

  1. Asım dedi ki:
    02 Ocak 2023, 17:15

    Suplier için bir değer döndürmeyen yazmışsınız ama değer almayan olacaktı, yazım yanlışı olmuş. Yazı içinde teşekkürler emeğinize sağlık.

    Yanıtla
    1. Burak KUTBAY dedi ki:
      04 Ocak 2023, 15:43

      Geri bildiriminiz için teşekkür ederim. 🙂

      Yanıtla

Bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

javb

Java 8 Dersleri – StringJoiner Nedir? Uygulama Örneği

javb

Java 8 – Default Methods Nedir? Kullanım Örneği

javb

Java 8 Lambda Expressions Nedir? Lambda İfadeleri Kullanım Örnekleri

javb

Java 8 Date , Time API Kullanım Uygulama Örneği

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Node.js
Java 24
Android
Struts
Röportaj
Gradle
Amazon Web Services
Vue.js
Video
Redis
Spring Boot 3.0
Debezium
Mikroservis Mimarisi
Spring Native
Spring Cloud Stream
Etkinlikler
XCode
JPA
Objective C
iPhone Uygulama Geliştirme
PostgreSQL
Spring Security
MongoDB
Java 21
Spring Data
Apache Kafka
Yaptığım Projeler
Servlet
Git
Maven
Design Patterns
DevOps
Linux
Spring Jdbc Template
RabbitMQ
JDBC
PrimeFaces
Manset
Google
Spring
Spring MVC
Spring Cloud
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Java SE
Tanıyalım
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale