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 پاسخ 918 بازدید
0 امتیاز
0 پاسخ 686 بازدید
+1 امتیاز
1 پاسخ 955 بازدید
+1 امتیاز
1 پاسخ 1.5هزار بازدید
0 امتیاز
0 پاسخ 782 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
+3 امتیاز
1 پاسخ 956 بازدید
0 امتیاز
2 پاسخ 573 بازدید
...