CodeGym /Java Blog /এলোমেলো /টীকা। পার্ট 1 - একটু বিরক্তিকর
John Squirrels
লেভেল 41
San Francisco

টীকা। পার্ট 1 - একটু বিরক্তিকর

এলোমেলো দলে প্রকাশিত
পার্ট 1. আমি খুব সংক্ষিপ্তভাবে SOURCE এবং CLASS প্রকারের টীকা সম্পর্কে লিখেছি। এটি পড়ার যোগ্য, যাতে দ্বিতীয় অংশে হারিয়ে যাওয়া এড়াতে এবং আপনার "ভুল বোঝাবুঝি"কে একটু প্রসারিত করতে =) আমি প্রতিশ্রুতি দিচ্ছি যে অন্তত একটি শব্দ অবশ্যই থাকবে যা আপনি জানেন! টীকা।  পর্ব 1 — একটু বিরক্তিকর - 1 প্রথমবার যখন আমি এখানে কাজগুলিতে টীকা দেখেছিলাম তখন আমি কোনওভাবে সেগুলিতে খুব বেশি মনোযোগ দিইনি। এখানে এবং সেখানে @ওভাররাইড আছে, কিন্তু আইডিইএ এটি যোগ করে, তাই আমি ভেবেছিলাম যে এটি সেইভাবে হতে হবে। সময়ের সাথে সাথে, আমি বুঝতে পেরেছি যে সবকিছু অনেক গভীর। আপনি অধ্যয়ন করার সময়, টীকাগুলি কিছুটা অকেজো কিন্তু প্রয়োজনীয় বলে মনে হতে পারে। আপনি জানেন না কেন তারা বিদ্যমান বা তারা কি করে। আপনি কয়েকটি নিবন্ধ পড়েছেন যা বলেছিল, "এটি এত দুর্দান্ত যে আমাদের এখন টীকা আছে, সবকিছু এত সহজ হয়ে গেছে।" কিন্তু আমি জানতাম না যে জিনিসগুলি আগে কেমন ছিল, এবং আমি বুঝতে পারিনি যে জিনিসগুলি এখন সহজ। এখন আমি জানি এবং একটু শেয়ার করতে চাই. 3 ধরনের (রিটেনশন পলিসি) টীকা আছে:
  • উৎস — কম্পাইলারের জন্য টীকা
  • ক্লাস - টীকা থেকে তথ্য বাইটকোডে লেখা হবে কিন্তু রানটাইমে পাওয়া যাবে না। তারা বলে যে স্ট্যান্ডার্ড লাইব্রেরিতে এই ধরণের অনেক টীকা রয়েছে, যা এখন পশ্চাদপদ সামঞ্জস্যের জন্য ধরে রাখা হয়েছে। এটি খুব নির্দিষ্ট কাজের জন্য ব্যবহৃত হয়।
  • স্ট্যাকওভারফ্লোতে প্রশ্নোত্তর
  • রানটাইম — এই টীকাগুলি সবচেয়ে জনপ্রিয়৷ কোডটি কার্যকর করার সময় এগুলি ব্যবহার করা হয়।
ভূমিকাটি নিবন্ধটির অংশ নিয়েছিল, তাই আমি এখানে সোর্স এবং ক্লাস টীকা সম্পর্কে লিখব। এই টীকা আমি খুঁজে পেতে পারি (টাস্ক 3607 ধন্যবাদ)। আমি রানটাইম টীকাগুলিকে সম্বোধন করব না — সেগুলির মধ্যে অনেকগুলি রয়েছে এবং সেগুলি এই নিবন্ধের বিষয় নয়৷ উৎস:
  • java/lang/annotation/Native.class;
  • java/lang/SuppressWarnings.class
  • javax/annotation/Generated.class
  • java/lang/Override.class
শ্রেণী: আমি জানি না কেন ক্লাস টীকা প্রয়োজনীয়। বিদ্যমান টীকাগুলির জন্য ডকুমেন্টেশন কোথাও পাওয়া যায় না, তাই আমি মনে করি আপনি এই লাগেজটি পিছনে রেখে যেতে পারেন। তবে খুঁজে পেলে শেয়ার করবেন। উৎস টীকা:
  1. নেটিভ — এই টীকা সহ একটি ভেরিয়েবল নেটিভ কোডকে নির্দেশ করতে পারে;
  2. সাপ্রেস ওয়ার্নিংস — এই টীকাটি বিভিন্ন কম্পাইলার সতর্কতা দমন করে;
  3. জেনারেটেড — এই টীকাটি উৎপন্ন সোর্স কোডকে চিহ্নিত করে;
  4. ওভাররাইড — এই টীকা পদ্ধতি ওভাররাইড চেক করে।
আরও তথ্যের জন্য:

@স্থানীয়

নেটিভ — আমি এটি কখনও দেখিনি এবং কখনও ব্যবহার করিনি। আমি মনে করি এটি একটি বরং বিরল টীকা, কারণ এটি ব্যবহার করা হয় যখন আপনাকে অন্য "নেটিভ" ভাষায় কোড চালানোর প্রয়োজন হয়। আমি চেষ্টা করেছি এবং এর স্পষ্ট উল্লেখ খুঁজে পেতে ব্যর্থ হয়েছি।

@Suppress Warnings

সাপ্রেস ওয়ার্নিংস — এই টীকাটি প্রায়শই এইভাবে ব্যবহার করা হয়: @SuppressWarnings("unchecked")। আপনি ইতিমধ্যে সচেতন যে সতর্কতাগুলি দমন করতে এটি ব্যবহার করা হয়৷ পূর্ববর্তী উদাহরণ অচেক টাইপ রূপান্তর সম্পর্কে সতর্কতা দমন করে। আবার, এই একমাত্র ব্যবহার যা আমি সম্মুখীন করেছি।

@ উত্পন্ন

জেনারেট করা হয়েছে — আমি এই মুহূর্তে এই টীকাতে চলেছি একটি অ্যাসাইনমেন্টের কারণে যেখানে আমাকে XSD ফাইল থেকে ক্লাস তৈরি করতে হবে। এই 3 টি টীকাটি বেশ নির্দিষ্ট এবং বর্তমানে আপনার কাছে সম্ভবত অরুচিকর। আমি শেষ এক বর্ণনা করব.

@অগ্রাহ্য করা

ওভাররাইড - আপনি এটি ক্রমাগত ব্যবহার করেন এবং এটি খুব দরকারী কিছু করে। একটি পদ্ধতি ওভাররাইড করার সময়, IDEA এর সাহায্য ছাড়াই ভুল করা সহজ। টাইপো বা সাধারণ ভুল হোক না কেন, ভুল হয়। এই টীকাটি নিশ্চিত করবে যে অভিভাবক শ্রেণীর পদ্ধতিটি আমাদের (টীকা করা) পদ্ধতির সাথে মেলে। এটি নিশ্চিত করে যে পদ্ধতিটি যোগ করার পরিবর্তে ওভাররাইড করা হবে। কোড রিফ্যাক্টর করার সময়, মূল পদ্ধতি সরানো বা পরিবর্তন করা যেতে পারে। আবার, এই টীকাটি একটি ত্রুটি নির্দেশ করবে। এটা ছাড়া, আমাদের পদ্ধতি সহজভাবে যোগ করা হবে. বিরক্তিকর? আমি হ্যাঁ বলতাম। এই নিবন্ধটি থেকে সংগ্রহ করার জন্য খুব বেশি সহায়ক নেই। এখানে প্রায় সবকিছুই (90%) এমন কিছু বর্ণনা করে যা আপনি কখনই ব্যবহার করবেন না বা খুব কমই। বাকি 10% @Override টীকাকে হ্যালো বলছে এবং বর্ণনা করছে, যা প্রথম নজরে অকেজো। যে বলেন, আমি মনে করি নিবন্ধের দ্বিতীয় অংশ আরো আকর্ষণীয় হবে. সেখানে RUNTIME টীকা নিয়ে আলোচনা হবে — তারা সম্পাদনের সময় কোডের সাথে ইন্টারঅ্যাক্ট করে এবং কালো জাদু করে। টীকা। পার্ট 2. লম্বক
মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION