Skip to content

Instantly share code, notes, and snippets.

@jandk
Created April 19, 2018 11:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jandk/412fa24ed0a869de6fc1016df39377a3 to your computer and use it in GitHub Desktop.
Save jandk/412fa24ed0a869de6fc1016df39377a3 to your computer and use it in GitHub Desktop.
public final class Person {
private final String firstName;
private final String lastName;
private Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public static Builder builder() {
return new Builder();
}
public static final class Builder {
private String firstName;
private String lastName;
private Builder() {
}
public Builder firstName(String firstName) {
this.firstName = firstName;
return this;
}
public Builder lastName(String lastName) {
this.lastName = lastName;
return this;
}
public Person build() {
return new Person(firstName, lastName);
}
}
}
@jandk
Copy link
Author

jandk commented Apr 19, 2018

  public Person build();
    descriptor: ()LPerson;
    flags: ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
         0: new           #5                  // class Person
         3: dup
         4: aload_0
         5: getfield      #3                  // Field firstName:Ljava/lang/String;
         8: aload_0
         9: getfield      #4                  // Field lastName:Ljava/lang/String;
        12: aconst_null
        13: invokespecial #6                  // Method Person."<init>":(Ljava/lang/String;Ljava/lang/String;LPerson$1;)V
        16: areturn

  Person$Builder(Person$1);
    descriptor: (LPerson$1;)V
    flags: ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
         0: aload_0
         1: invokespecial #1                  // Method "<init>":()V
         4: return

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment