Annotations কী এবং কেন গুরুত্বপূর্ণ
Annotations কটলিনসহ অনেক প্রোগ্রামিং ভাষায় ব্যবহৃত একটি শক্তিশালী ফিচার, যা কোডে অতিরিক্ত তথ্য বা মেটাডেটা যোগ করার জন্য ব্যবহৃত হয়। এগুলো মূলত ক্লাস, মেথড, প্রপার্টি, বা ফাংশনের উপর বিশেষ বৈশিষ্ট্য চিহ্নিত করতে ব্যবহৃত হয়। নিচে Annotations-এর ধারণা, গুরুত্বপূর্ণতা এবং কিভাবে কাজ করে তা বিস্তারিতভাবে আলোচনা করা হলো।
১. Annotations কী?
Annotations হলো বিশেষ ধরনের ট্যাগ বা মেটাডেটা যা কোডের বিভিন্ন অংশে যুক্ত করা হয়। এগুলো কম্পাইলার বা রানটাইমের জন্য অতিরিক্ত নির্দেশিকা হিসেবে কাজ করে, কিন্তু এগুলো কোডের কার্যকরী অংশ নয়। কটলিনে, annotations @ সিম্বল দিয়ে শুরু হয়।
উদাহরণ:
@Target(AnnotationTarget.FUNCTION)
@Retention(AnnotationRetention.RUNTIME)
annotation class MyCustomAnnotation(val description: String)
@MyCustomAnnotation("This is a custom annotation")
fun annotatedFunction() {
println("This function is annotated")
}
ব্যাখ্যা:
- এখানে
MyCustomAnnotationএকটি কাস্টম annotation, যা@Targetদ্বারা নির্দেশ করা হয়েছে যে এটি একটি ফাংশনে ব্যবহার করা যাবে এবং@Retentionদ্বারা নির্দেশ করা হয়েছে যে এটি রানটাইমে উপলব্ধ থাকবে।
২. Annotations এর প্রকারভেদ
কটলিনে বিভিন্ন ধরনের annotations ব্যবহৃত হয়, যেমন:
i) Built-in Annotations
- @Deprecated: এটি নির্দেশ করে যে একটি ফাংশন বা ক্লাস ব্যবহার করা উচিত নয়, কারণ এটি ভবিষ্যতে বাদ পড়তে পারে।
@Deprecated("Use newFunction() instead")
fun oldFunction() {
// Implementation
}
- @JvmStatic: এটি নির্দেশ করে যে একটি স্ট্যাটিক ফাংশন কিভাবে Java এর সাথে কাজ করবে।
ii) Custom Annotations
- আপনি নিজের কাস্টম annotations তৈরি করতে পারেন, যেমন উপরে উল্লেখিত উদাহরণে
MyCustomAnnotationতৈরি করা হয়েছে।
৩. Annotations এর গুরুত্বপূর্ণতা
i) Metadata for Code
Annotations কোডে অতিরিক্ত তথ্য বা মেটাডেটা প্রদান করে, যা কোডের উদ্দেশ্য বা কার্যকলাপ বোঝাতে সাহায্য করে। এটি ডেভেলপারদের জন্য কোড পড়া এবং বুঝতে সহজ করে।
ii) Compile-time and Runtime Checks
Annotations ব্যবহার করে বিভিন্ন চেকিং করা যায়। উদাহরণস্বরূপ, @NotNull ব্যবহার করে null safety নিশ্চিত করা যায়।
iii) Frameworks and Libraries
বিভিন্ন ফ্রেমওয়ার্ক এবং লাইব্রেরি annotations ব্যবহার করে তাদের কার্যকারিতা নির্ধারণ করে। উদাহরণস্বরূপ, Spring ফ্রেমওয়ার্কে DI (Dependency Injection) এর জন্য annotations ব্যবহার করা হয়।
iv) Code Generation
Annotations ব্যবহার করে কোড জেনারেশন করা যেতে পারে। যেমন, কিছু লাইব্রেরি runtime এ annotations পড়ে কোড তৈরি করে।
৪. Annotations কিভাবে কাজ করে?
Annotations কিভাবে কাজ করে তা বোঝার জন্য, নিচে একটি উদাহরণ দেওয়া হলো যেখানে @Target এবং @Retention ব্যবহার করা হয়েছে।
উদাহরণ:
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
annotation class Entity(val tableName: String)
@Entity(tableName = "users")
class User(val id: Int, val name: String)
fun main() {
val userClass = User::class
val annotation = userClass.annotations.find { it is Entity } as? Entity
println("Table Name: ${annotation?.tableName}") // আউটপুট: Table Name: users
}
ব্যাখ্যা:
- এখানে
Entityannotation তৈরি করা হয়েছে, যা ক্লাসে ব্যবহার করা যায় এবং রানটাইমে উপলব্ধ থাকবে।Userক্লাসের উপর এই annotation ব্যবহার করে আমরা একটি টেবিলের নাম সংরক্ষণ করেছি, যা পরে কোডের মধ্যে পড়া যাবে।
উপসংহার
Annotations কটলিনের একটি গুরুত্বপূর্ণ ফিচার যা কোডে মেটাডেটা যোগ করতে এবং বিভিন্ন কার্যকলাপ চিহ্নিত করতে ব্যবহৃত হয়। এগুলো কোডের পাঠযোগ্যতা, ফ্রেমওয়ার্ক ও লাইব্রেরি উন্নত করার ক্ষেত্রে সহায়ক, এবং runtime বা compile-time চেকিং সহজ করে। কাস্টম annotations তৈরি করে আপনি আপনার কোডের কার্যকারিতা বাড়াতে পারেন।
Read more