রেকর্ডের জন্য ডিফল্ট নির্মাতাকে সংজ্ঞায়িত করুন


20

আমার একটি রেকর্ড রয়েছে এবং এটিতে ডিফল্ট কনস্ট্রাক্টর যুক্ত করতে চাই।

public record Record(int recordId) {
   public Record{

   }
}

কিন্তু এটি ইন প্যারাম দিয়ে কনস্ট্রাক্টর তৈরি করেছে।

public final class Record extends java.lang.Record{
    private final int recordId;
    public Record(int);
    //other method
}

আমরা কীভাবে একটি রেকর্ডে একটি ডিফল্ট কনস্ট্রাক্টর যুক্ত করতে পারি?


আপনি যেটি সংজ্ঞায়িত করেছেন সেটি হ'ল একটি কমপ্যাক্ট কনস্ট্রাক্টর যা এর ঘোষণাটি রেকর্ড শিরোনাম থেকে প্রাপ্ত। কমপ্যাক্ট কনস্ট্রাক্টরে রেকর্ড উপাদান এবং আনুষ্ঠানিক প্যারামিটারের মধ্যে নাম, প্রকার এবং ভেরিয়েবল আরটিতে 1-1 টি মিল রয়েছে যা ক্যানোনিকাল কনস্ট্রাক্টরের ক্ষেত্রে একই প্রযোজ্য। একটি রেকর্ডে কেবলমাত্র ক্যানোনিকাল কনস্ট্রাক্টর থাকতে পারে। কমপ্যাক্ট কনস্ট্রাক্টর হিসাবে ঘোষিত হলে হ'ল ক্যানোনিকাল কনস্ট্রাক্টর
ভিসেন্ট রোমেরো

উত্তর:


18

কেশ বিভক্ত করতে, আপনি কখনই ডিফল্ট কনস্ট্রাক্টরকে সংজ্ঞায়িত করতে পারবেন না, কারণ কোনও সংজ্ঞায়িত কনস্ট্রাক্টর যখন সংজ্ঞায়িত না হয় তখন কোনও সংজ্ঞায়িত কনস্ট্রাক্টর সংজ্ঞা অনুসারে ডিফল্ট হয় না।

যদি আপনি কোনও নো-আরগ কনস্ট্রাক্টর রাখার রেকর্ড চান তবে রেকর্ডগুলি অতিরিক্ত কনস্ট্রাক্টর বা কারখানার পদ্ধতি যুক্ত করার অনুমতি দেয় , যতক্ষণ না "ক্যানোনিকাল কনস্ট্রাক্টর" রেকর্ড ক্ষেত্রগুলির সবকটি আর্গুমেন্ট হিসাবে ডাকে।

public record Record(int recordId) {
   public Record() {
      this(0); 
   }
}

17

সুস্পষ্ট নির্মাতা

আপনার ক্ষেত্রে, আপনি স্পষ্টভাবে একটি পূর্বনির্ধারিত মান সহ ক্যানোনিকাল কনস্ট্রাক্টরের সাথে প্রতিনিধি দলের সাথে কোনও যুক্তি-বিন্যাস নির্মাতা নির্দিষ্ট করে দিতে পারেন এবং এটি হিসাবে এটি করা যেতে পারে -

public Record(){
    this(Integer.MIN_VALUE);
}

সংক্ষেপে, কোনও নন-ক্যানোনিকাল কনস্ট্রাক্টরকে একজনকে অর্পণ করা উচিত এবং এই উপস্থাপনাগুলির ডেটা বহনকারী প্রকৃতির ক্ষেত্রে এটি সত্য হওয়া উচিত।

কমপ্যাক্ট কনস্ট্রাক্টর

অন্যদিকে, নোট করুন যে উপস্থাপনাটি আপনি আপনার কোডটিতে ব্যবহার করেছেন।

public Record {}

"কমপ্যাক্ট কনস্ট্রাক্টর" হিসাবে অভিহিত করা হয় যা সমস্ত যুক্তি স্বীকার করে এমন একজন নির্মাণকারীর প্রতিনিধিত্ব করে এবং যা রেকর্ডের বৈশিষ্ট্য হিসাবে সরবরাহিত ডেটা বৈধ করার জন্যও ব্যবহার করা যেতে পারে। একটি কমপ্যাক্ট কনস্ট্রাক্টর হ'ল ক্যানোনিকাল কনস্ট্রাক্টর ঘোষণার একটি বিকল্প উপায়।

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