কিভাবে সম্পত্তি জাভাদোক লিখতে?


93

কেবলমাত্র বৈশিষ্ট্য এবং গেটার এবং সেটটার (ডিটিও-স্টাইল) সম্বলিত "সাধারণ" পোজো শ্রেণীর বৈশিষ্ট্য / সদস্যদের জন্য জাভাদোক লেখার সময় আমি প্রায়শই একটি দ্বিধায় পড়ে যাই ....

1) সম্পত্তি জন্য জাভাদোক লিখুন
বা ...
2) প্রাপ্তির জন্য জাভাদোক লিখুন

আমি যদি সম্পত্তিটির জন্য জাভাদোকটি লিখি তবে আমি পরে কোড সমাপ্তির মাধ্যমে POJO এ অ্যাক্সেস করলে আমার আইডিই (একলিপস) স্বাভাবিকভাবেই এটি প্রদর্শিত করতে সক্ষম হবে না। এবং এমন কোনও স্ট্যান্ডার্ড জাভাদোক ট্যাগ নেই যা আমাকে আসল সম্পত্তি জাভাদোকের সাথে গিটার-জাভাদোক লিঙ্ক করতে দেয়।

একটি উদাহরণ:

public class SomeDomainClass {

  /**
   * The name of bla bla bla
   */
  private String name;

  /**
   * @return INSERT SOME SMART JAVADOC TAG LINKING TO name's javadoc
   */
  public String getName() {  
    return name;  
  }  

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

এখন পর্যন্ত আমি আমার অনুশীলনগুলি কেবলমাত্র প্রাপ্তিদের নথির জন্য বিবেচনা করছি, বৈশিষ্ট্যগুলি নয়। তবে এটি সেরা সমাধানের মতো বলে মনে হচ্ছে না ...


4
এখানে এটি সম্পর্কে আকর্ষণীয় আলোচনা: স্ট্যাকওভারফ্লো / প্রশ্নগুলি ১০০২৮৯67//২ । গৃহীত উত্তরের মাধ্যমে আপনি Eclipse / javadoc সম্পর্কে যা জিজ্ঞাসা করেছিলেন তা সম্বোধন করে।
বি.রোথ

দেখে মনে হচ্ছে যে তারা যা বিবেচনা করে যাচ্ছিল তা দিয়েই শেষ হয়েছে ... কেবলমাত্র প্রাপ্তদের মধ্যে সম্পত্তি জাভাদোক লিখুন।

আমি এনোটেশন দিয়ে এটি করার একটি উপায় খুঁজে পেয়েছি যা গ্রহনে কাজ করে এবং রানটাইম এমনকি সংগ্রহ করা যায়, তা কি বিকল্প হতে পারে?
কুম্ভ শক্তি পাওয়ার

বেসরকারী সদস্যদের জাভাদোক দরকার?
teon

ব্লে ব্লে ব্লকের নাম: সেরা উদাহরণ
রডরিগো এস্পিনোজা

উত্তর:


76

জাভাদোকস তৈরি করার সময় আপনি ব্যক্তিগত সদস্যদের অন্তর্ভুক্ত করতে পারেন (-প্রাইভেট ব্যবহার করে) এবং তারপরে সেই ক্ষেত্রগুলির সম্পত্তিতে লিঙ্ক করতে @ লিঙ্কটি ব্যবহার করতে পারেন।

public class SomeDomainClass {
    /**
     * The name of bla bla bla
     */
    private String name;

    /**
     * {@link SomeDomainClass#name}
     */
    public String getName() {
        return name;
    }
}

বিকল্পভাবে, আপনি যদি সমস্ত ব্যক্তিগত সদস্যদের জন্য জাভাডোক তৈরি করতে না চান তবে আপনার কাছে সমস্ত প্রাইভেটদের ডকুমেন্ট করার জন্য একটি কনভেনশন থাকতে পারে এবং সেটারগুলিতে @ লিঙ্ক ব্যবহার করতে পারেন।

public class SomeDomainClass {
    private String name;

    /**
     * The name of bla bla bla
     */
    public String getName() {
        return name;
    }

    /**
     * {@link SomeDomainClass#getName}
     */
    public void setName(String name) {
        this.name = name;
    }
}

4
আমি @ লিঙ্ক এবং @ এসই ট্যাগ উভয়ই নিয়ে পরীক্ষা-নিরীক্ষা করেছি .. তবে ... কমপক্ষে গ্রহপস এটি সঠিকভাবে প্রদর্শন করে না। গ্রহণটি লিঙ্কটি ... (ড্রামরোল) .... লিঙ্ক হিসাবে প্রদর্শন করে that লিঙ্ক .. যে বিষয়বস্তু দেখার জন্য এটিতে ক্লিক করতে হবে। আমি কোড সমাপ্তি সক্রিয় করতে সক্ষম হতে চাই (বা মাউস দ্বারা) যখন আমি প্রকৃতপক্ষে একজন

13
@ কেনি - Eclipse এর ব্যবহারযোগ্যতার POV থেকে আপনার জাভাডোক অনুশীলনগুলিকে মডেল করবেন না। জাভাডক আউটপুট সঠিক (বা যথেষ্ট যথেষ্ট পর্যাপ্ত) পাওয়ার পিওভি থেকে করুন। আইডিইগুলি পরিবর্তিত হয়, এবং আজ কী কী অভাব হতে পারে তা আগামীকালই সম্বোধন করা যেতে পারে (বা আপনি আসলে আইডিই পুরোপুরি পরিবর্তন করতে পারেন))
লুইস.এসপিনাল

4
@ লুইস এর @linkঅর্থ একটি লিঙ্ক যা আসল জাভাদোকটি দেখতে ক্লিক করতে হবে। এটি কোনও গ্রহণের ব্যবহারযোগ্যতার সমস্যা নয়, এটি ব্যবহারে সহজ জাভাদোক সরবরাহের জন্য ভুল সমাধান।
নাটস

4

লম্বোক এই জাতীয় কাজের জন্য খুব সুবিধাজনক একটি গ্রন্থাগার।

@Getter
@Setter
public class Example {
    /**
     * The account identifier (i.e. phone number, user name or email) to be identified for the account you're
     * requesting the name for
     */
    private String name;
}

যে আপনার প্রয়োজন হয়! @Getterটীকা প্রতিটি বেসরকারী ক্ষেত্রের জন্য একটি সংগ্রহকারী পদ্ধতি তৈরি করে এবং এটি javadoc সংযুক্ত করুন।

PS : লাইব্রেরিতে অনেকগুলি দুর্দান্ত বৈশিষ্ট্য রয়েছে যা আপনি চেকআউট করতে চাইতে পারেন


3

আমি উভয়ই করি, এক্লিপসের স্বতঃপূরণ দ্বারা সহায়তা করে।

প্রথমত, আমি সম্পত্তিটি নথি করি:

/**
 * The {@link String} instance representing something.
 */
private String someString;

তারপরে, আমি এটি অনুলিপি করে অনুলিপিটির কাছে আটকান:

/**
 * The {@link String} instance representing something.
 */
public String getSomeString() {
    return someString;
}

গ্রহণের সাথে, @ পুনরায় বিবৃতিগুলির একটি স্ব-পরিপূর্ণতা রয়েছে - সুতরাং, আমি গেটস শব্দটি যুক্ত করি, "টি" ছোট করে রাখি এবং ছোট "টি" দিয়ে বাক্যটি অনুলিপি করি। তারপরে আমি @ রিটর্ন (ইক্লিপস স্বতঃপূরণ সহ) ব্যবহার করি, বাক্যটি আটকান, এবং তারপরে রিটার্নে টি-টি বড় করে রাখি। এটি তখন এর মতো দেখাচ্ছে:

/**
 * Gets the {@link String} instance representing something.
 * @return The {@link String} instance representing something.
 */
public String getSomeString() {
    return someString;
}

পরিশেষে, আমি সেটারে সেই নথিটি অনুলিপি করি:

/**
 * Gets the {@link String} instance representing something.
 * @return The {@link String} instance representing something.
 */
public void setSomeString(String someString) {
    this.someString = someString;
}

তারপরে, আমি এটিকে সংশোধন করব এবং একটিগ্রাহী স্বয়ংক্রিয়রূপে আপনি কেবল @ পরিমাপ ট্যাগটিই পাবেন না তবে প্যারামিটারের নামটিও পেতে পারেন:

/**
 * Sets the {@link String} instance representing something.
 * @param someString The {@link String} instance representing something.
 */
public void setSomeString(String someString) {
    this.someString = someString;
}

তারপরে, আমি শেষ করেছি। আমার মতে, এই টেম্প্লেটিংটি দীর্ঘকালীন সময়ে, পুনরাবৃত্তির মাধ্যমে সম্পত্তিটির অর্থ কী তা নিজেকে স্মরণ করিয়ে দেওয়াকে অনেক সহজ করে তোলে, তবে আপনি যদি পার্শ্ব যোগ করতে চান তবে গিটার এবং সেটটারের সাথে অতিরিক্ত মন্তব্য যুক্ত করা আরও সহজ করে তোলে প্রভাবগুলি (যেমন নাল বৈশিষ্ট্যগুলিকে মঞ্জুরি না দেওয়া, বড় হাতের স্ট্রিংগুলিতে স্ট্রিং ঘুরিয়ে দেওয়া ইত্যাদি) আমি এই উদ্দেশ্যে একটি Elpipse প্লাগইন তৈরি তদন্ত করেছি কিন্তু আমি JDT- র জন্য উপযুক্ত এক্সটেনশন পয়েন্টটি খুঁজে পাইনি, তাই আমি ছেড়ে দিয়েছি।

দ্রষ্টব্য যে বাক্যটি সর্বদা একটি টি দিয়ে শুরু হয় না - এটি কেবল প্রথম অক্ষরটি পেস্টিংয়ে ছাপিয়ে / পুনরূদ্ধার করা উচিত।


24
অনুলিপি / পেস্ট করা খারাপ ... এবং সময় সাপেক্ষ। এই পদক্ষেপগুলি অনেক কাজের মতো দেখায় এবং জাভাডক পরিবর্তন হলে আপনার আপডেট করার জন্য 3 টি আলাদা জায়গা থাকবে। আমি মনে করি না যে কোনও প্লাগইন এটি ন্যায্যতা পাবে ... কমপক্ষে, তারপরে প্লাগইনটিকে উদাহরণ হিসাবে সম্পত্তি জাভাদোককে মাস্টার হিসাবে বিবেচনা করতে হবে এবং তারপরে গেটারগুলি (এবং সেটটার) ওভাররাইট করতে হবে। আমি যেটি সম্পাদন করতে চাই তা হ'ল জাভাদোকটি 1 টি জায়গায় লিখুন এবং তারপরে গেটার এবং সম্পত্তি উভয়ই একই বর্ণনাটি ধরে নেবেন ...

সাধারণত বৈশিষ্ট্যগুলি প্রায়শই পরিবর্তন হয় না। এবং কপিরাইট এবং পেস্ট অপারেশনগুলি, গ্রহপথের স্বতঃপূরণ সহ, জাভাডোক সম্পত্তিটি তৈরি হওয়ার পরে 30 সেকেন্ডেরও কম সময় নেয়।
MetroidFan2002

4
আমি নিশ্চিত নই ... এই জাতীয় অনুলিপি / পেস্ট স্কিমের পরিচিতি আইএমএইচওর সাথে অসঙ্গতি সৃষ্টি করতে বাধ্য। কোডটি পরে সম্পাদনা করার ক্ষেত্রে আমার অন্যান্য কুকের (বা নিজে) খুব কম বিশ্বাস আছে faith এছাড়াও, কমপক্ষে যদি আপনি একটি সম্পূর্ণ আপ-ফ্রন্ট ডিজাইন না রাখেন তবে জাভাডোক বৈশিষ্ট্যগুলি প্রায়শই পরিবর্তিত হতে পারে, কমপক্ষে একটি পরীক্ষামূলক / ডিজাইনের পর্যায়ে। কোডটি মনে মনে তাজা থাকাকালীন জাভাডোকটি আরও ভাল মানের হতে হবে ... দুঃখিত যদি আমি

4
দুঃখিত, তবে সম্পাদনা বৈশিষ্ট্যগুলি অসংলগ্নতার দিকে পরিচালিত করতে বাধ্য - আপনি যেভাবেই এটি খেলেন, জাভাডোক যদি কোনও ফ্যাশনে জোরালোভাবে রক্ষণাবেক্ষণ না করা হয় তবে পাশের ধারে পড়ে যান। এমনকি সম্পত্তি জাভাদোকটি প্রকাশ করার কোনও সহজ উপায় থাকলেও, সম্পত্তি জাভাদোক নিজেই আপডেট হবে না এমনই সম্ভাবনা রয়েছে। এটি সত্যই দলটির কোডিং কনভেনশনগুলির বিষয়, এবং কোড পর্যালোচনা, এর মতো স্টাফ - আপনার জন্য শুভকামনা, আমি ঠিক এটিই করি তাই আমি ভুলে যাব না।
MetroidFan2002

@ মেট্রয়েড - যদি না কিছুটা ফ্যাশনে তা দৃously়রূপে রক্ষণাবেক্ষণ করা হয় - ভাল, যদি এটি উত্স কোডের অংশ হিসাবে বিবেচনা করা হয় তবে তা দৃously়রূপে বজায় রাখা হবে। এবং জাভাডোক মন্তব্যগুলি (এবং অন্যান্য ভাষায় তাদের সমতুল্য) কোডের অভ্যন্তরীণ অংশ হিসাবে ব্যবহার না করা, যদিও দুঃখজনকভাবে এটি স্ট্যান্ডার্ড অনুশীলন হলেও এটি অনেকগুলি খারাপের মূল। সবচেয়ে খারাপ মন্তব্যটি হ'ল তারিখ হয়ে গেছে। সর্বোপরি, তারা কোডারে গ্রিপ পেতে প্রোগ্রামারদের ধীর করে দেয় (কারণ তাদের ক্রমাগত পুনর্নির্মাণ করতে হবে এবং পুরানো মন্তব্যকে মেনে নিতে / প্রত্যাখ্যান করতে হবে)) আরও খারাপ দিক থেকে তারা ত্রুটি-প্রবণ, বাগ-প্রবর্তন সম্পর্কিত তথ্য দেয় give
luis.espinal

0

আমি সত্যিই মনে করি এটি একটি সমস্যা এবং সরকারী জাভাদোক গাইড এ সম্পর্কে কিছুই বলেন না। গিগাবাইট প্রোপার্টি ব্যবহারের সাথে মার্জিত ফ্যাশনে এটি সমাধান করতে পারে (আমি সি # তে কোড করি না, তবে আমি সত্যিই এটি একটি দুর্দান্ত বৈশিষ্ট্য বলে মনে করি)।

তবে আমার একটি অনুমান আছে: আপনার যদি বোঝাতে হয় যে কিছু স্ট্রিং কী, সম্ভবত এটি আপনার কোড সম্পর্কে একটি "ছোট ছোট"। এর অর্থ হতে পারে যে আপনি কিছু স্ট্রিং টাইপ করার জন্য সোমারস্লাস লিখতে হবে, সুতরাং আপনি সামারক্লাস ডকুমেন্টেশনে কিছু স্ট্রিং কী তা ব্যাখ্যা করবেন এবং ঠিক তাই গেটার / সেটারে জাভাদোকগুলি প্রয়োজনীয় হবে না।


4
কোডে স্ট্রিংগুলির যথাযথ ব্যবহার সম্পর্কে, কার্যকর জাভা বইটিতে types other অন্যান্য প্রকারের চেয়ে উপযুক্ত যেখানে স্ট্রিংগুলি এড়ান তা পরীক্ষা করুন।
লিওনার্দো লেইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.