1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| import java.util.Set; class BuilderExample { private String name; private int age; private Set<String> occupations;
BuilderExample(String name, int age, Set<String> occupations) { this.na 大专栏 考虑使用构建器(二)me = name; this.age = age; this.occupations = occupations; }
public static BuilderExampleBuilder builder() { return new BuilderExampleBuilder(); }
public static class BuilderExampleBuilder { private String name; private int age; private java.util.ArrayList<String> occupations;
BuilderExampleBuilder() { }
public BuilderExampleBuilder name(String name) { this.name = name; return this; }
public BuilderExampleBuilder age(int age) { this.age = age; return this; }
public BuilderExampleBuilder occupation(String occupation) { if (this.occupations == null) { this.occupations = new java.util.ArrayList<String>(); }
this.occupations.add(occupation); return this; }
public BuilderExampleBuilder occupations(Collection<? extends String> occupations) { if (this.occupations == null) { this.occupations = new java.util.ArrayList<String>(); }
this.occupations.addAll(occupations); return this; }
public BuilderExampleBuilder clearOccupations() { if (this.occupations != null) { this.occupations.clear(); }
return this; }
public BuilderExample build() { Set<String> occupations = ...; return new BuilderExample(name, age, occupations); }
@java.lang.Override public String toString() { return "BuilderExample.BuilderExampleBuilder(name = " + this.name + ", age = " + this.age + ", occupations = " + this.occupations + ")"; } } }
|