برنامه نویسی

6.4 روشهای نمونه سازی مجدد

ایجاد یک مرجع روش برای یک شی خاص:

اگر یک شی (رودریگو) داشته باشیم ، می توانیم یکی از روش های آن مانند Rodrigo :: Makederator را ارجاع دهیم.
مثال:

Usuario rodrigo = new Usuario("Rodrigo Turini", 50);
Runnable bloco = rodrigo::tornaModerador;
bloco.run(); // Equivalente a rodrigo.tornaModerador()

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این مرجع روش معادل یک لامبدا است:

Runnable bloco2 = () -> rodrigo.tornaModerador();

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

تفاوت بین رودریگو :: سازنده و کاربر :: Makederator:

Rodrigo :: Makederator به روشی از یک شیء خاص (رودریگو) اشاره می کند و می تواند به عنوان Runnable استنباط شود (زیرا پارامترهایی دریافت نمی کند).
کاربر :: Makeriser به روش هر شیء از نوع کاربر اشاره می کند و می تواند به عنوان مصرف استنباط شود ، زیرا به یک آرگومان (کاربر) نیاز دارد.

مثال:

Consumer consumer = Usuario::tornaModerador;
consumer.accept(rodrigo); // Invoca rodrigo.tornaModerador()

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

معادل لامبدا:

Consumer consumer2 = u -> u.tornaModerador();

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

خطاها هنگام مخلوط کردن انواع مرجع:

اختصاص دادن کاربر :: Runnable امکان پذیر نیست ، زیرا آرگومان دریافت نمی کند در حالی که مصرف کننده به یک پارامتر نیاز دارد.
مثال نامعتبر:

Runnable consumer = Usuario::tornaModerador; // Erro de compilação!

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نتیجه گیری:

منابع متد به ما این امکان را می دهد تا به روشهای نمونه اشیاء خاص یا هر نمونه از یک کلاس مراجعه کنیم.
کامپایلر نوع رابط عملکردی صحیح را بر اساس زمینه تحت الشعاع قرار می دهد.

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

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

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

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