مشخصات مقاله
-
621
-
0.0
-
2150
-
0
-
0
رابط تابعی در Java 8
رابط های تابعی در Java 8
رابط های تابعی تنها یک کارکرد را دارند که نمایش دهند. برای مثال یک رابط Comparable همراه با یک متد واحد ‘compareTo’ برای مقایسه ی هدف و منظور کاربرد دارد. Java 8 رابط های تابعی زیادی را تعریف کرده است که می توان از آن ها در عبارت های لامبدا به صورت گسترده استفاده کرد. در ادامه لیستی از رابط های تابعی موجود در بسته ی java.util.Function را می توانید مشاهده کنید.
در ادامه لیست رابط های موجود در Java 8 را می توانید مشاهده کنید.
بیانگر عملیاتی است که دو آرگومان ورودی را می گیرد و هیچ نتیجه ای برگشت نمی دهد.
بیانگر تابعی است که دو آرگومان را می گیرد و یک نتیجه را تولید می کند.
بیانگر عملیاتی است که دو عملوند از یک نوع را می گیرد و نتیجه را از همان نوع به صورت عملوند تولید می کند.
بیانگر گزاره ای (تابع بولی) از دو آرگومان است.
بیانگر تهیه کننده ای از نتایج بولی است.
بیانگر عملیاتی است که تنها یک آرگومان ورودی را دریافت می کند و هیچ نتیجه ای را برگشت نمی دهد.
بیانگر عملیاتی بر روی دو عملوند با مقدار مضاعف است که نتیجه ی آن یک مقدار مضاعف است.
بیانگر عملیاتی است که تنها یک آرگومان مضاعف را می گیرد و هیچ نتیجه ای را برگشت نمی دهد.
بیانگر تابعی است که یک آرگومان مضاعف را می گیرد و یک نتیجه را تولید می کند.
بیانگر گزاره ای (تابع بولی) از یک آرگومان مضاعف است.
بیانگر تهیه کننده ای از نتایج مضاعف است.
بیانگر تابعی است که یک آرگومان مضاعف را می گیرد و نتیجه را به صورت عدد صحیح تولید می کند.
بیانگر تابعی است که آرگومان مضاعفی را می گیرد و یک مقدار Long را نتیجه می دهد.
بیانگر عملیاتی بر روی یک عملوند با مقدار مضاعف است که نتیجه ی آن یک مقدار مضاعف است.
بیانگر تابعی است که یک آرگومان را می گیرد و یک نتیجه را برگشت می دهد.
بیانگر عملیاتی بر روی دو عملوند با عدد صحیح است که نتیجه ی آن یک عدد صحیح است.
بیانگر عملیاتی است که یک آرگومان واحد صحیح را می گیرد و هیچ نتیجه ای را برگشت نمی دهد.
بیانگر تابعی است که آرگومانی با مقدار صحیح را می گیرد و یک نتیجه را برگشت می دهد.
بیانگر گزاره ای (تابع بولی) از یک آرگومان با مقدار صحیح است.
بیانگر تهیه کننده ای از نتایج با مقدار صحیح است.
بیانگر تابعی است که یک آرگومان با مقدار صحیح را می گیرد و نتیجه را با مقدار مضاعف تولید می کند.
بیانگر تابعی است که یک آرگومان با مقدار صحیح را می گیرد و نتیجه را با مقدار Long تولید می کند.
بیانگر عملیاتی بر روی یک عملوند با مقدار صحیح است که نتیجه ی آن یک مقدار صحیح است.
بیانگر عملیاتی بر روی دو عملوند با مقدار Long است که نتیجه ی آن یک مقدار Long است.
بیانگر عملیاتی است که تنها یک آرگومان با مقدار Long را می گیرد و هیچ نتیجه ای را برگشت نمی دهد.
بیانگر تابعی است که آرگومان با مقدار Long را می گیرد و یک نتیجه را برگشت می دهد.
بیانگر گزاره ای (تابع بولی) از یک آرگومان با مقدار Long است.
بیانگر تهیه کننده ای از نتایج با مقدار Long است.
بیانگر تابعی است که یک آرگومان با مقدار Long را می گیرد و نتیجه ای را با مقدار مضاعف تولید می کند.
بیانگر تابعی است که آرگومانی را با مقدار Long می گیرد و یک نتیجه ی صحیح را برگشت می دهد.
بیانگر عملیاتی بر روی یک عملوند با مقدار Long است که یک نتیجه با مقدار Long را تولید می کند.
بیانگر عملیاتی است که یک مقدار شیء و یک آرگومان با مقدار مضاعف را می گیرد و هیچ نتیجه ای را برگشت نمی دهد.
بیانگر عملیاتی است که یک مقدار شیء و یک آرگومان با مقدار صحیح را می گیرد و هیچ نتیجه ای را برگشت نمی دهد.
بیانگر عملیاتی است که یک مقدار شیء و یک آرگومان با مقدار Long را می گیرد و هیچ نتیجه ای را برگشت نمی دهد.
بیانگر گزاره ای (تابع بولی) از یک آرگومان است.
بیانگر تهیه کننده ای از نتایج است.
بیانگر تابعی است که دو آرگومان را می گیرد و یک نتیجه با مقدار مضاعف را تولید می کند.
بیانگر تابعی است که یک نتیجه ی با مقدار مضاعف را تولید می کند.
بیانگر تابعی است که دو آرگومان را می گیرد و نتیجه ای با مقدار صحیح را تولید می کند.
بیانگر تابعی است که نتیجه ای با مقدار صحیح را تولید می کند.
بیانگر تابعی است که دو آرگومان را می گیرد و نتیجه ای با مقدار Long را برگشت می دهد.
بیانگر تابعی است که نتیجه ای با مقدار Long را تولید می کند.
بیانگر عملیاتی بر روی یک عملوند واحد است که نتیجه ای را از همان نوع عملوند خود تولید می کند.
رابط Predicate < T > یک رابط تابعی با متد test(Object) بوده که یک مقدار بولی را برگشت می دهد. این رابط بیانگر درست یا نادرست بودن شیء تست شده است.
با استفاده از یکی از ویرایشگرهای مورد نظر خود، برنامه ی Javaی زیر را مثلا در 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 is passed as parameter to test method of Predicate interface
// test method will always return true no matter what value n has.
System.out.println("Print all numbers:");
//pass n as parameter
eval(list, n- >true);
// Predicate< Integer > predicate1 = n - > n%2 == 0
// n is passed as parameter to test method of Predicate interface
// test method will return true if n%2 comes to be zero
System.out.println("Print even numbers:");
eval(list, n- > n%2 == 0 );
// Predicate< Integer > predicate2 = n - > n > 3
// n is passed as parameter to test method of Predicate interface
// test method will return true if n is greater than 3.
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
نتیجه باید به صورت زیر نمایش داده شود.
Print all numbers: 1 2 3 4 5 6 7 8 9 Print even numbers: 2 4 6 8 Print numbers greater than 3: 4 5 6 7 8 9
برای مطالعه سرفصل آموزش جاوا (J2SE) کلیک نمایید .