public class ClassToBuild { private final String someString; public ClassToBuild(String someString) { this.someString = someString; } } public class ClassToBuild { private final String someString; private ClassToBuild(String someString) { this.someString = someString; } public static final class Builder { private String someString; public Builder withSomeString(String someString) { this.someString = someString; } public ClassToBuild build() { return new ClassToBuild(someString); } } }