Недавно я начал читать «Эффективную Java» Джошуа Блоха. Мне очень интересна идея паттерна Строитель [пункт 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();
}
}
Я получаю следующую ошибку компилятора:
включающий экземпляр, содержащий Мне очень интересна идея паттерна Строитель [пункт 2 в книге]. Я попытался реализовать это в своем проекте, но были ...
Недавно я начал читать «Эффективную Java» Джошуа Блоха. Мне очень интересна идея паттерна Строитель [пункт 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(); } }
Я получаю следующую ошибку компилятора:
включающий экземпляр, содержащий Мне очень интересна идея паттерна Строитель [пункт 2 в книге]. Я попытался реализовать это в своем проекте, но были ...
Недавно я начал читать «Эффективную Java» Джошуа Блоха. Мне очень интересна идея паттерна Строитель [пункт 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(); } }
Я получаю следующую ошибку компилятора:
включающий экземпляр, содержащий Я пытался реализовать это в своем проекте, но были ошибки компиляции. По сути, я пытался сделать следующее:
Класс с несколькими атрибутами и его класс построителя:
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(); } }
Я получаю следующую ошибку компилятора:
включающий экземпляр, содержащий Я пытался реализовать это в своем проекте, но были ошибки компиляции. По сути, я пытался сделать следующее:
Класс с несколькими атрибутами и его класс построителя:
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(); } }
Я получаю следующую ошибку компилятора:
включающий экземпляр, содержащий Effectivejava.BuilderPattern.NutritionalFacts.Builder требуется Пищевая ценность n = новое NutritionalFacts.Builder (10) .carbo (23) .fat (1) .build ();
Я не понимаю, что означает это сообщение. Пожалуйста, объясни. Приведенный выше код похож на пример, предложенный Блохом в его книге.