জাভা পদ্ধতিটিকে অবচয় হিসাবে চিহ্নিত বা চিহ্নিত করতে কীভাবে?


284

আমি আমার একটি পদ্ধতি "অবচয়িত" = আর ব্যবহার না করে তৈরি করতে চাই।

তবে তবুও আমি এটি আমার এপিআইতে রাখতে চাই। আমি এই পদ্ধতিটি ব্যবহার করে যে কাউকে কেবল "সতর্কতা" দেখাতে চাই।

আমি কীভাবে এটি অর্জন করতে পারি?


10
@ ডেপ্রেসিটেড কি আপনার পক্ষে বিকল্প নয়?
টেম্পলেটটিফাইফ

18
এটি হ'ল, তবে আমি এটি সম্পর্কে জানতাম না ... কেন আমি প্রশ্ন জিজ্ঞাসা করছি :)
পাভেল জ্যানিসেক


4
মন্তব্য উত্তর জন্য জায়গা নয়!
মাত্তুমোটু

উত্তর:


577

@Deprecatedপদ্ধতিতে ব্যবহার করুন। জাভাদোক ক্ষেত্রটি স্পষ্ট করার বিষয়ে ভুলবেন না:

/**
 * Does some thing in old style.
 *
 * @deprecated use {@link #new()} instead.  
 */
@Deprecated
public void old() {
// ...
}

2
আপনি কিভাবে একটি বাহ্যিক গ্রন্থাগার লিঙ্ক করবেন? যেমন: com.hello.api.PublicController # new
ফাইজান কাজী

@ লিনাক্সলার্স সম্পূর্ণ সম্মত! জাভা 9 reason""
অবচয়কে

3
আমি চাই @deprecatedমন্তব্যটিতে থাকা বার্তাটি @Deprecated(তাদের সমস্ত স্থির করার জন্য একটি স্পট) যুক্ত করা যেতে পারে ...
ইউ উইন্ডল

88

@Deprecatedটিকা এবং @deprecatedজাভাডক ট্যাগ উভয়ই ব্যবহার করুন ।

@deprecatedJavaDoc ট্যাগ ডকুমেন্টেশন উদ্দেশ্যে ব্যবহার করা হয়।

দ্য @Deprecatedটীকা কম্পাইলার যে পদ্ধতি অবচিত নির্দেশ দেয়। এই বিষয়ে সান / ওরাকলস নথিতে এটি যা বলেছে তা এখানে:

ব্যবহার @Deprecatedটীকা একটি বর্গ, পদ্ধতি, বা ক্ষেত্র নিশ্চিত করে যে সব কম্পাইলার যখন কোড ব্যবহারসমূহ যে প্রোগ্রাম উপাদান সতর্কবার্তা জারি করবে বিনয়ী হতে। বিপরীতে, কোনও গ্যারান্টি নেই যে সমস্ত সংকলক সর্বদা @deprecatedজাভাডক ট্যাগের উপর ভিত্তি করে সতর্কতা জারি করবে , যদিও সান সংকলকগণ বর্তমানে এটি করছেন। অন্যান্য সংকলকরা এই ধরনের সতর্কতা জারি করতে পারে না। সুতরাং, @Deprecatedসতর্কতা উত্পন্ন করতে টীকাটি ব্যবহার করা আরও পোর্টেবল যা @deprecatedজাভাদোক ট্যাগের উপর নির্ভর করে ।

আপনি কীভাবে এবং কখন এপিআইগুলিকে হ্রাস করবেন সে বিষয়ে পুরো দস্তাবেজটি খুঁজে পেতে পারেন


1
বেশ সত্য নয়। জাভাডোক এবং টীকাগুলি উভয়ই সংকলক পদ্ধতি অবহিত করা হয়েছে
বোহেমিয়ান

17
@ বোহেমিয়ান আসলে এটি মোটেই সত্য নয়। জাভা ভাষার স্পেসিফিকেশন বিভাগ 9.6.1.6 ( java.sun.com/docs/books/jls/third_edition/html/… ) এ টীকাটি সংজ্ঞায়িত করা হয়েছে , যখন জাভাডক ট্যাগটি নেই। সুতরাং টীকাগুলি ভাষার অংশ। আপনি যদি নিজের জাভা সংকলক লেখার সিদ্ধান্ত নেন, আপনি জাভাডক ট্যাগ উপেক্ষা করতে পারেন, তবে আপনাকে অবশ্যই টীকাটি সনাক্ত করতে হবে।
শান-এইচ_ফেল 27'12

@ শমন-এইচ_ফেল আমি বিশ্বাস করি জাভাডোক মডেলটিও কাজ করে। কারণ এটি জাভা 5 এর আগে একমাত্র পছন্দ ছিল এবং এটি কাজ করেছিল। যখন আপনি @deprecatedজাভাডক ট্যাগ (জাভা 4- এ) দিয়ে কোনও পদ্ধতি চিহ্নিত করেছেন, সংকলকটি পদ্ধতিটিকে (শ্রেণি, ক্ষেত্র) অবহিত হিসাবে চিহ্নিত করেছে এবং কোনও উত্স উপলভ্য না হলেও আইডিই সতর্কতা দেখিয়েছিল।
আমির পাশাজাদেহে

42

যেহেতু কিছু ছোটখাটো ব্যাখ্যা অনুপস্থিত ছিল

@Deprecatedপদ্ধতিতে টীকাটি ব্যবহার করুন

 /**
 * @param basePrice
 * 
 * @deprecated  reason this method is deprecated <br/>
 *              {will be removed in next version} <br/>
 *              use {@link #setPurchasePrice()} instead like this: 
 * 
 * 
 * <blockquote><pre>
 * getProduct().setPurchasePrice(200) 
 * </pre></blockquote>
 * 
 */
@Deprecated
public void setBaseprice(int basePrice) {
}

ব্যাখ্যা করতে মনে রাখবেন:

  1. কেন এই পদ্ধতিটির আর সুপারিশ করা হয় না । এটি ব্যবহার করার সময় কোন সমস্যা দেখা দেয়। বিষয়টি নিয়ে আলোচনার একটি লিঙ্ক সরবরাহ করুন যদি থাকে তবে। (পাঠযোগ্যতার জন্য পৃথক লাইনগুলি মনে রাখবেন<br/>
  2. কখন এটি সরানো হবে । (আপনার ব্যবহারকারীদের যদি তারা পুরানো পথে চলার সিদ্ধান্ত নেন তবে তারা এখনও এই পদ্ধতিতে কতটা নির্ভর করতে পারেন তা জানান)
  3. আপনার প্রস্তাবিত পদ্ধতির একটি সমাধান বা লিঙ্ক সরবরাহ করুন {@link #setPurchasePrice()}

এটি </ BR> এর পরিবর্তে, <br/> হওয়া উচিত নয়?
argh1969

@ argh1969, ঠিক আছে! মনে রাখবেন না আমি কখন থেকে টেমপ্লেট পেয়েছিলাম। তবে আমি উভয় সংস্করণ কাজ নিশ্চিত করতে পারি। যদিও আমি মানের পক্ষে সম্পাদনা করছি।
আজেফেরতি

37

দুটি জিনিস আপনি করতে পারেন:

  1. যুক্ত করুন @Deprecatedপদ্ধতিতে টীকা , এবং
  2. @deprecatedপদ্ধতির জাভাডকে একটি ট্যাগ যুক্ত করুন

আপনার উভয় করা উচিত !

এই বিষয়ে জাভা ডকুমেন্টেশন উদ্ধৃত :

J2SE 5.0 দিয়ে শুরু করে আপনি @ বিশিষ্ট টীকাগুলি ব্যবহার করে একটি শ্রেণি, পদ্ধতি বা ক্ষেত্রটিকে অবমূল্যায়ন করেন। অতিরিক্তভাবে, আপনি এর পরিবর্তে কী ব্যবহার করবেন তা ডেভেলপারদের বলুন @ সবিস্তৃত জাভাদোক ট্যাগ ব্যবহার করতে পারেন।

অবজ্ঞাত শ্রেণি, পদ্ধতি বা ক্ষেত্র ব্যবহার করা হলে টীকাটি ব্যবহার করে জাভা সংকলক সতর্কতা তৈরি করে। অবহেলিত সংকলন ইউনিট একটি অবহেলিত শ্রেণি, পদ্ধতি বা ক্ষেত্র ব্যবহার করে যদি সংকলক হ্রাসকারী সতর্কতাগুলিকে দমন করে। এটি আপনাকে সতর্কতা উত্পন্ন না করেই উত্তরাধিকারের API তৈরি করতে সক্ষম করে।

নতুন এপিআই কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করার জন্য যথাযথ মন্তব্যের সাথে জাভাদোক @ ডিপ্রেসিটেড ট্যাগ ব্যবহার করার জন্য আপনাকে দৃ strongly়ভাবে প্রস্তাব দেওয়া হচ্ছে। এটি নিশ্চিত করে যে বিকাশকারীদের পুরানো এপিআই থেকে নতুন এপিআইতে একটি কার্যকর ব্যবস্থাপনার স্থান থাকবে


এর অর্থ হ'ল জাভাডোক মন্তব্যটি টীকাটি ছাড়াও জোরালোভাবে সুপারিশ করা হয়েছে , প্রতিস্থাপন হিসাবে নয়! এজন্য দু'জনেই রাখাই সর্বদাই ভাল।
morellet.d

@ morellet.d এটি নির্দেশ করার জন্য ধন্যবাদ। আমি এখনই আমার উত্তরটি এখনই নতুন করে লিখেছি (আমি ডকটি যথেষ্ট পরিমাণে পড়িনি!)। চিয়ার্স
বোহেমিয়ান

8

ব্যবহার করুন টীকা @Deprecated আপনার পদ্ধতির জন্য, এবং আপনি আপনার javadocs এটা উল্লেখ করা উচিত।


লিঙ্কটি এখন ভাঙা হয়েছে
তবুও 21

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.