Android-FAQ
Android-FAQ copied to clipboard
kotlin extension functions و معادل آن ها در جاوا
جاوا بصورت پیشفرض همچین ویژگی ای رو نداره، ولی با استفاده از کتابخونه Lombok و انوتیشن @ExtensionMethod، میشه این امکان رو پیاده سازی کرد.
برای مطالعه بیشتر، این لینک مستندات رسمی خود کتابخونست.
آموزش گسترش توابع در کاتلین (kotlin extension function):
گاهی در هنگام برنامهنویسی به یک تابع یا قابلیت خاصی از یک کلاس نیاز پیدا میکنید که ممکن است در آن کلاس وجود نداشته باشد. این کلاس میتواند یکی از کلاسهایی باشد که توسط خود زبان ارائه میشود. برای اضافه کردن آن قابلیت در کلاس چه کاری انجام میدهید؟
راه حل رایج برای رفع این مشکل این است که در پروژهی خود کلاس جدیدی بسازیم که از کلاس مورد نظر ارث بری کند و هر کجا به این ویژگی نیاز پیدا کردیم کلاس توسعه یافتهی خودمان را فراخوانی کرده و از آن استفاده کنیم. راه حل دیگر رفع این مشکل با استفاده از الگوهایی مانند Decorator است که پیچیدگیهای خاص خودش را دارد.
در این مقاله در مورد یکی دیگر از ویژگیهای جدید زبان kotlin به نام “Extension” صحبت خواهیم. با استفاده از گسترش توابع در کاتلین قادر خواهیم بود توابع و قابلیتهای دلخواهمان را به کلاس مورد نظر حتی بدون وراثت و یا اصلاح آنها اضافه و یا حذف کنیم.
extension function:
همانطور که گفتیم برای افزودن یک تابع (function) یا قابلیتهای یکی از کلاسهای ارائه شده توسط زبان کاتلین مانند String و List و Toast و … میتوانیم از ویژگی Extension در این زبان استفاده کنیم. به تابعی که به کلاس موجود اضافه میشود و توسط آن ویژگی جدید به آن کلاس اضافه میشود، تابع گسترش (extension function) میگویند. و کلاس مرجعی که تابع گسترش به آن اضافه شده است Receiver Type نامیده میشود.
مرجع کامل: https://7learn.com/blog/kotlin-extension-function