有那么多参数,该考虑构建器模式了。创建一个包含所有这些getter和setter的builder类,并带有一个build()方法,该方法返回您实际上试图构造的类的对象。
例:
public class ReallyComplicatedClass { private int int1; private int int2; private String str1; private String str2; // ... and so on // Note that the constructor is private private ReallyComplicatedClass(Builder builder) { // set all those variables from the builder } public static class Builder { private int int1; private int int2; private String str1; private String str2; // and so on public Builder() { // set required parameters } public Builder int1(int newInt) { int1 = newInt; return this; } // ... setters for all optional parameters, all returning 'this' public ReallyComplicatedClass build() { return new ReallyComplicatedClass(this); } }}在您的客户代码中:
ReallyComplicatedClass c = new ReallyComplicatedClass.Builder() .int1(myInt1) .str2(myStr2) .build();
请参阅有效的Java重新加载
[pdf]的7-9页,这是Josh Bloch在JavaOne 2007上的演讲。(这也是有效的Java 2nd
Edition中的第2项,但我没有用处,因此无法引用。)



