It would be great to make a implementation of the builder pattern with generics. In theory it would be possible to use reflection to make the following possible:
MyClass myClass = GenericBuilder<MyClass>.aObject()
.withThisProperty("foo")
.withThatProperty(4)
.build();
I already made the following code:
public class CursistBuilder {
private Cursist cursist = null;
private CursistBuilder() {
cursist = new Cursist("username not set", "email not set");
}
public static CursistBuilder aCursist() {
return new CursistBuilder();
}
public CursistBuilder withNaam(String name) {
cursist.setGebruikersnaam(name);
return this;
}
public CursistBuilder withEmail(String email) {
cursist.setEmail(email);
return this;
}
public Cursist build() {
return cursist;
}
}
How can this be accomplished?