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 پاسخ 786 بازدید
0 امتیاز
0 پاسخ 568 بازدید
+1 امتیاز
1 پاسخ 828 بازدید
+1 امتیاز
1 پاسخ 1.3هزار بازدید
0 امتیاز
0 پاسخ 680 بازدید
+1 امتیاز
1 پاسخ 890 بازدید
+3 امتیاز
1 پاسخ 832 بازدید
0 امتیاز
2 پاسخ 499 بازدید
...