मैंने हाल ही में यहोशू बलोच द्वारा प्रभावी जावा पढ़ना शुरू किया है। मुझे बिल्डर पैटर्न [पुस्तक में आइटम 2] का विचार वास्तव में दिलचस्प लगा। मैंने इसे अपनी परियोजना में लागू करने की कोशिश की, लेकिन संकलन त्रुटियां थीं। निम्नलिखित सार में मैं क्या करने की कोशिश कर रहा था:
कई विशेषताओं और उसके बिल्डर वर्ग के साथ वर्ग:
public class NutritionalFacts {
private int sodium;
private int fat;
private int carbo;
public class Builder {
private int sodium;
private int fat;
private int carbo;
public Builder(int s) {
this.sodium = s;
}
public Builder fat(int f) {
this.fat = f;
return this;
}
public Builder carbo(int c) {
this.carbo = c;
return this;
}
public NutritionalFacts build() {
return new NutritionalFacts(this);
}
}
private NutritionalFacts(Builder b) {
this.sodium = b.sodium;
this.fat = b.fat;
this.carbo = b.carbo;
}
}
कक्षा जहाँ मैं उपरोक्त वर्ग का उपयोग करने का प्रयास करता हूँ:
public class Main {
public static void main(String args[]) {
NutritionalFacts n =
new NutritionalFacts.Builder(10).carbo(23).fat(1).build();
}
}
मुझे निम्नलिखित संकलक त्रुटि मिल रही है:
एक एन्क्लोज़िंग उदाहरण जिसमें प्रभावीजैवा होता है। BuilderPattern.NutitionalFacts.Builder के लिए आवश्यक है NutritFacts n = new NutritionFacts.Builder (10) .carbo (23) .fat (1) .build ()।
मुझे समझ नहीं आ रहा है कि संदेश का क्या मतलब है। कृपया समझाएँ। उपरोक्त कोड बलोच द्वारा उनकी पुस्तक में सुझाए गए उदाहरण के समान है।