آموزشمطالب ویژه

سری مطالب آموزش جاوا ۸ : بخش پنجم – برخی از رابط‌های تابعی

 

 

 

  • LongToDoubleFunction

نمایش‌دهنده تابعی است که آرگومانی با مقداری از نوع long  می‌پذیرد و نتیجه‌ای با مقدار double برمی‌گرداند.

 

 

  • LongToIntFucntion

تابعی را نشان می‌دهد که آرگومانی با مقدار long می‌پذیرد و نتیجه‌ای از نوع عدد برمی‌گرداند.

 

 

  • LongUnaryOperator

عملیاتی را روی تنها یک عملوند با مقدار long نشان می‌دهد که نتیجه‌ای از نوع long تولید می‌کند.

 

 

  • ObjDoubleConsumer<T>

عملیاتی را نشان می‌دهد که مقداری از نوع object و آرگومانی از نوع double می‌پذیرد و نتیجه‌ای برنمی‌گرداند.

 

 

  • ObjIntConsumer<T>

عملیاتی را نشان می‌دهد که مقداری از نوع object و آرگومانی از نوع int می‌پذیرد و نتیجه‌ای برنمی‌گرداند.

 

 

  • ObjLongConsumer<T>

عملیاتی را نشان می‌دهد که مقداری از نوع object و آرگومانی از نوع long می‌پذیرد و نتیجه‌ای برنمی‌گرداند.

 

 

  • Predicate<T>

نشان‌دهنده یک predicate (تابعی با مقدار بولی) از یک آرگومان است.

 

 

  • Supplier<T>

نشان‌دهنده نتیجه‌ای از نوع supplier است.

 

 

  • ToDoubleBiFunction<T,U>

تابعی را نشان می‌دهد که دو آرگومان می‌پذیرد و نتیجه‌ای از نوع double برمی‌گرداند.

 

 

  • ToDoubleFunction<T>

نشان‌دهنده تابعی است که نتیجه‌ای از نوع double برمی‌گرداند.

 

 

  • ToIntBiFunction<T,U>

تابعی را نشان ‌می‌دهد که دو آرگومان می‌پذیرد و مقداری از نوع int تولید می‌کند.

 

 

  • ToIntFunction<T>

تابعی را نشان ‌می‌دهد که مقداری از نوع int برمی‌گرداند.

 

 

  • ToLongBiFunction<T,U>

تابعی را نشان می‌دهد که دو آرگومان می‌پذیرد و مقداری از نوع long برمی‌گرداند.

 

 

  • ToLongFunction<T>

نشان‌دهنده تابعی است که مقداری از نوع long برمی‌گرداند.

 

 

  • UnaryOperator<T>

عملیاتی را روی یک عملوند نشان می‌دهد که مقداری هم‌نوع با همان عملوند برمی‌گرداند.

 

 

مثال رابط‌های تابعی

 

اینترفیس Predicate<T> یک رابط تابعی است که یک متد test(Object) برای بازگرداندن مقداری از نوع بولی دارد. این اینترفیس نشان می‌دهد که object برای تشخیص true یا false بودن تست شده است.

 

برنامه جاوایی را که در زیر آمده است با ویرایشگری به انتخاب خودتان ایجاد کنید و مثلا می‌توانید از مسیر زیر استفاده کنید:

C:/> JAVA.

 

Java8Tester.java

import java.util.Arrays;

import java.util.List;

import java.util.function.Predicate;

public class Java8Tester {

   public static void main(String args[]) {

      List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);

      // Predicate<Integer> predicate = n -> true

      nبه‌عنوان پارامتر برای متد test  اینترفیس Predicate پاس داده می‌شود      //

      متد test‌ بدون توجه به مقداری که n دارد همیشه true برمی‌گرداند. //

      System.out.println(“Print all numbers:”);

      // را به عنوان پارامتر پاس می‌دهد n

      eval(list, n->true);

      // Predicate<Integer> predicate1 = n -> n%2 == 0

 n      به‌عنوان پارامتر برای متد test  اینترفیس Predicate پاس داده می‌شود//

اگر نتیجه باقیمانده تقسیم  n بر ۲ صفر شود متد test ،true برمی‌گرداند//

      System.out.println(“Print even numbers:”);

      eval(list, n-> n%2 == 0 );

  // Predicate<Integer> predicate2 = n -> n > 3

   n      به‌عنوان پارامتر برای متد test  اینترفیس Predicate پاس داده می‌شود//

       متد  test  اگر n  بزرگتر از ۳ باشد true  بازمی‌گرداند//

      System.out.println(“Print numbers greater than 3:”);

      eval(list, n-> n > 3 );

   }

   public static void eval(List<Integer> list, Predicate<Integer> predicate) {

      for(Integer n: list) {

         if(predicate.test(n)) {

            System.out.println(n + ” “);

         }

      }

   }

}

در اینجا ما اینترفیس Predicate را پاس می‌دهیم، که یک ورودی گرفته و مقداری از نوع بولین برمی‌گرداند. نتیجه را تایید کنید. کلاس را با استفاده از کامپایلر javac مانند زیر کامپایل کنید.

 

C:\JAVA>javac Java8Tester.java

حالا Java8Tester را مانند زیر اجرا کنید:

C:\JAVA>java Java8Tester

باید خروجی زیر را تولید کند:

 

چاپ همه اعداد:

۱

۲

۳

۴

۵

۶

۷

۸

۹

چاپ اعداد زوج:

۲

۴

۶

۸

چاپ اعداد بزرگتر از ۳:

۴

۵

۶

۷

۸

۹

قسمت اول این مقاله را از لینک زیر بخوانید:

سری مطالب آموزش جاوا ۸ : بخش پنجم – برخی از رابط‌های تابعی

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا