"হাই, অ্যামিগো!"
"হ্যালো, ঋষি।"
"আজ আমি আপনাকে টীকাগুলির একটি গভীর ভূমিকা দেব।"
"আপনি সম্ভবত ইতিমধ্যেই জানেন, টীকা হল বিশেষ শব্দ যা ক্লাস, ক্ষেত্র, পদ্ধতি এবং ভেরিয়েবলের পাশে রাখা যেতে পারে।"
"হ্যাঁ। আমি প্রায়ই তাদের মুখোমুখি হই।"
"কখনও কখনও এগুলিকে মেটাডেটাও বলা হয় । তাদের প্রাথমিক উদ্দেশ্য হল পদ্ধতি, ক্ষেত্র এবং ক্লাস সম্পর্কে নির্দিষ্ট অতিরিক্ত তথ্য সংরক্ষণ করা।"
"তারা কার জন্য এটা সঞ্চয় করে?"
"এটি একটি খুব ভাল প্রশ্ন।"
"লোকেরা টীকা লেখে, যার মানে কারো অবশ্যই তাদের প্রয়োজন।"
"টীকাগুলি আপনাকে কোড এবং প্রোগ্রাম উপাদানগুলি সম্পর্কে অতিরিক্ত তথ্য সঞ্চয় করতে দেয়, কিন্তু, আনুষ্ঠানিকভাবে, তারা কোডের অংশ নয়।"
"এনোটেশনগুলি XML তৈরি করতে ব্যবহার করা যেতে পারে, একটি পদ্ধতি অবমূল্যায়ন করা হয়েছে কিনা তা নির্ধারণ করতে, বাগগুলি ট্র্যাক করা ইত্যাদি।"
"এখানে কোডে টীকাগুলির একটি উদাহরণ:"
@CatInfo(manager=Catmanager.class, unique=true)
class Cat
{
@Name("Missy")
private String name;
@SuppressWarnings(value = "unchecked")
void getUniqueCatName()
{
}
}
"যেমন আপনি দেখতে পাচ্ছেন, তথ্য টীকাতে সংরক্ষণ করা যেতে পারে।"
"যদি একটি টীকাটির মান নামক একটি ক্ষেত্র থাকে , তাহলে ক্ষেত্রের নামটি বাদ দেওয়া যেতে পারে:"
@SuppressWarnings("unchecked")
void getUniqueCatName()
{
}
"যদি বন্ধনীর ভিতরে কোন প্যারামিটার না থাকে, তাহলে সেগুলিও বাদ দেওয়া যেতে পারে:"
@Override
void getUniqueCatName()
{
}
"আপনার নিজস্ব টীকা তৈরি করা খুবই সহজ। একটি টীকা ঘোষণা করা একটি ইন্টারফেস ঘোষণা করার প্রায় অভিন্ন।"
@interface CatManager
{
Class manager();
boolean unique();
String name() default "Unknown Cat";
}
"শুধু কয়েকটি পার্থক্য আছে।"
"প্রথম, আপনি ইন্টারফেস শব্দের আগে একটি «@» চিহ্ন রাখুন ।"
"দ্বিতীয়, একটি টীকাতে ডিফল্ট মান থাকতে পারে। আপনি ডিফল্ট মান সেট করতে ডিফল্ট শব্দটি ব্যবহার করেন । উপরের উদাহরণটি দেখুন। এই প্যারামিটারগুলি ঐচ্ছিক এবং টীকা যোগ করার সময় বাদ দেওয়া যেতে পারে।"
"আহ। আমি যা ভেবেছিলাম তার চেয়ে এটি সব সহজ। এবং আমি তাদের এড়িয়ে চলেছি যেমন রোবো-ডেভিল পবিত্র জল এড়িয়ে চলে। কোডে এমন অনেক কিছু থাকে যখন আপনি সম্পূর্ণরূপে বুঝতে পারেন না।"
"ওহ, এটা ভাল যে আপনি আমাকে মনে করিয়ে দিয়েছেন - আমি আপনাকে কম্পাইলার দ্বারা ব্যবহৃত টীকা সম্পর্কে আরও বলতে চাই।"
"এরকম মাত্র 3 টি টীকা আছে। ভাল, এখনও পর্যন্ত তিনটি।"
@অবঞ্চিত।
"আপনি @Deprecated এর সাথে একটি ক্লাস বা একটি পদ্ধতি টীকা করতে পারেন। এটি কম্পাইলারকে একটি সতর্কতা জারি করবে (একটি সতর্কতা একটি ত্রুটি নয়), এবং IntelliJ IDEA এই পদ্ধতিটিকে স্ট্রাইকথ্রু পাঠ্য হিসাবে প্রদর্শন করবে। এইরকম কিছু :
Date date = new Date();
int year = date.getYear();
@অগ্রাহ্য করা.
"আপনি যে পদ্ধতিগুলিকে ওভাররাইড করেন তাতে @Override টীকা যোগ করা একটি সর্বোত্তম অনুশীলন হিসাবে বিবেচিত হয়।"
"এটা কিসের জন্য? আইডিইএ কি ইতিমধ্যেই দেখায় না যে একটি পদ্ধতি ওভাররাইড করা হয়েছে কি না?"
"প্রথমে, আইডিইএ আছে এবং তারপরে জাভা সিনট্যাক্স আছে।"
"এবং দ্বিতীয়ত, অনুমানগতভাবে, আপনার এমন একটি পরিস্থিতি হতে পারে যেখানে একটি বেস ক্লাসের পদ্ধতির নামকরণ করা হয় সাবক্লাসের পদ্ধতির নামের সাথে কোনো পরিবর্তন ছাড়াই। প্রোগ্রামটি প্রত্যাশিতভাবে কাজ করবে না, কিন্তু কেউ লক্ষ্য করবে না। এই টীকাটি উদ্ভাবিত হয়েছিল এই পরিস্থিতিগুলি ঘটতে বাধা দিন:"
@Override
void getUniqueCatName()
{
}
@Suppress Warnings.
"কখনও কখনও কম্পাইলার অনেক সতর্কবার্তা প্রদর্শন করে। এবং কখনও কখনও আমরা «সমস্যা» সম্পর্কে জানি এবং ইচ্ছাকৃতভাবে সংশ্লিষ্ট কোড ব্যবহার করা বেছে নিচ্ছি যা তাদের তৈরি করে। আপনি এই সতর্কতাগুলির কিছু লুকানোর জন্য এই টীকা ব্যবহার করতে পারেন।"
"একজন প্রোগ্রামার কম্পাইলারকে বলতে @SuppressWarnings টীকা ব্যবহার করতে পারেন , "এই ত্রুটির জন্য একটি সতর্কতা দেখাবেন না - এটি ইচ্ছাকৃত।" উদাহরণ স্বরূপ:"
@SuppressWarnings("unchecked")
void getUniqueCatName()
{
}
"বুঝেছি."
"আমি একটু ক্লান্ত হয়ে যাচ্ছি। আমি আমার শুকনো গলা ভেজাতে যাচ্ছি। একটু বিরতির পর চলুন, ঠিক আছে?"
"অবশ্যই।"
GO TO FULL VERSION