0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

Functional Interface در جاوا 8 چیست؟

1 پاسخ

+1 امتیاز
قبل توسط (1.1هزار امتیاز)
ویرایش شده قبل توسط
 
بهترین پاسخ

Functional Interface در جاوا 8 راهی برای افزودن lambda expression به type system  جاوا بوده است. برای این کار هر عبارت lambda باید معادل یک type در جاوا باشد که آن type یک interface است که به آن functional interface می گویند. یک functional interface باید حتما فقط شامل یک abstract method باشد (چون default method ها در جاوا 8 abstract نیستند می توانیم در یک functional interface چندین default method داشته باشیم). انوتیشن FunctionalInterface برای چک کردن معتبر بودن یک Functional Interface در زمان کامپایل است و در صورتی که یک Functional Interface بیش از یک متد abstract داشته باشد، کامپایلر جاوا خطا می دهد.

مثال:

@FunctionalInterface
interface Converter<F, T> {
    T convert(F from);
}

interface بالا یک functional interface است و می توانیم lambda expression هایی مطابق با آن تعریف کنیم:

Converter<String, Integer> converter = (from) -> Integer.valueOf(from);
Integer converted = converter.convert("123");
System.out.println(converted);    // 123

سوالات مشابه

0 امتیاز
0 پاسخ 795 بازدید
0 امتیاز
0 پاسخ 575 بازدید
+1 امتیاز
1 پاسخ 838 بازدید
+1 امتیاز
1 پاسخ 1.4هزار بازدید
0 امتیاز
0 پاسخ 692 بازدید
+1 امتیاز
1 پاسخ 932 بازدید
+3 امتیاز
1 پاسخ 851 بازدید
0 امتیاز
2 پاسخ 513 بازدید
...