جاوا

جلسه ۴۳: معرفی Functional Interface در جاوا

این جلسه مفهوم functional interface را که در جاوا ۸ معرفی شده است ، توضیح می دهد. موارد زیر را بیان خواهیم کرد:

  • functional interface چیست؟
  • برچسب FunctionalInterface@ چیست؟

functional interface چیست؟

اینترفیسی که فقط دارای یک متد انتزاعی باشد ، functional interface نامیده می شود. در حالی که یک اینترفیس می تواند یک یا چند متد پیش فرض داشته باشد ، اما باید فقط یک متد انتزاعی داشته باشد تا functional interface نامیده شود. Java 8 پکیج java.util.function را تعریف کرده است که حاوی تعداد زیادی functional interface است. برخی از functional interface های تعریف شده در جاوا ۸ عبارتند از Predicate, Consumer, Supplier, Function و غیره. functional interface توسط عبارات lambda استفاده می شود. در جلسات بعدی ، در مورد lambda بحث خواهیم کرد و همچنین برخی کاربردهای functional interface در Java 8 را مشاهده خواهیم کرد.

برچسب FunctionalInterface@ چیست؟

هر اینترفیسی که فقط یک متد انتزاعی داشته باشد می تواند با برچسب FunctionalInterface@ مشخص شود. استفاده از این برچسب اجباری نیست اما اگر اینترفیسی برچسب FunctionalInterface@ داشته باشد و کسی بخواهد متد انتزاعی دیگری به این اینترفیس اضافه کند ، کامپایلر خطایی اعلان می کند. در زیر مثالی از functional interface آورده شده است.

@FunctionalInterface
public interface Functional {
    void doSomething();

    default void foo() {
        System.out.println("foo");
    }
}

اگر تلاس کنیم که یک متد انتزاعی دیگر به اینترفیس فوق اضافه کنیم ، کامپایلر خطایی می دهد. اگر یک اینترفیس برچسب FunctionalInterface@ را داشته باشد اما هیچ متد انتزاعی نداشته باشد نیز کامپایلر خطا خواهد داد.

آزمون ها:

0
ایجاد شده در

Quiz 29

1 / 3

اگر کلاسی دو اینترفیس را پیاده سازی کند و هر دوی این اینترفیس ها دارای متد پیش فرض با نام یکسان باشند ، چه روی می دهد؟ (تمامی گزینه های صحیح را انتخاب کنید ، ممکن است چند گزینه صحیح باشند)

2 / 3

آیا می توان یک متد استاتیک که داخل اینترفیس تعریف شده است را override کرد؟

3 / 3

آیا لازم است که functional interface دارای برچسب FunctionalInterface@ باشد؟

امتیاز شما

میانگین امتیازها 0%

0%

فعلاً این موارد برای آموزش اینترفیس کافی است. در جلسات بعدی ، lambda و نحوه استفاده از آن را نیز خواهید دید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا