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 پاسخ 788 بازدید
0 امتیاز
0 پاسخ 571 بازدید
+1 امتیاز
1 پاسخ 831 بازدید
+1 امتیاز
1 پاسخ 1.3هزار بازدید
0 امتیاز
0 پاسخ 682 بازدید
+1 امتیاز
1 پاسخ 896 بازدید
+3 امتیاز
1 پاسخ 840 بازدید
0 امتیاز
2 پاسخ 502 بازدید
...