interface Builder { T build(); } class Person{ public static String output ; protected int fieldAge; protected String fieldName; @Override public java.lang.String toString() { String output = "Person {name='" + fieldName +"',age="+ fieldAge +"}"; return output; } public void check() { output="sadf"; } static class PersonBuilder implements Builder { protected int fieldAge; protected String fieldName; PersonBuilder(String inName){ setName(inName); } public String getName() { return fieldName; } public void setName(String inName) { fieldName = inName; } public int getAge() { return fieldAge; } public Builder setAge(int inI) { fieldAge = inI; return this; } @Override public Person build() { Person person = new Person(); person.fieldAge = getAge(); person.fieldName = getName(); return person; } } } public class Solution { public static void main(String args[] ) { Builder jack = new Person.PersonBuilder("Jack").setAge(50); Builder jean = new Person.PersonBuilder("Billy Jean is not my lover, she just a girl who claims that I am the one.").setAge(45); System.out.println(jack.build()); System.out.println(jean.build()); } }