Page 26 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 26

26 |  Java’da Fonksiyonel Programlama



           @FunctionalInterface’den dolayı eğer ikinci bir metot eklenseydi, program çalıştırıldığında derleyici
           (compiler)  TestHataliFonksiyonelArayüz  arayüzünün  fonksiyonel  arayüz  tanımına  uymadığını

           belirten aşağıdaki hatayı atacaktı ve program çalışmayacaktı.


            @FunctionalInterface
            public interface TestHataliFonksiyonelArayüz {
                int birSeyYap();
                int baskaBirSeyYap();
            }





            java: Unexpected @FunctionalInterface annotation
              TestHataliFonksiyonelArayüz is not a functional interface
                multiple non-overriding abstract methods found in interface
            TestHataliFonksiyonelArayüz



           Dört farklı fonksiyonel arayüz tipinden söz edilebilir:


           1-) Consumer


           2-) Supplier

           3-) Predicate


           4-) Function


           3.1. Consumer


           Consumer  tüketici  anlamına  gelir  ve  bu  arayüzler  tek  bir  argüman  (argument)  alıp  hiçbir  değer
           dönmezler. Örnek kullanım:


            public class Main {
                static Consumer<Character> charConsumer = ch -> System.out.println(ch);

                public static void main(String args[]) {
                    Character[] charArray = {‘t’, ‘e’, ‘s’, ‘t’};
                    Arrays.stream(charArray).forEach(charConsumer);
                }
            }

           Bu program bize aşağıdaki çıktıyı verecektir:


            t
            e
            s
            t
   21   22   23   24   25   26   27   28   29   30   31