Slide 24
Slide 24 text
ϘΠϥʔϓϨʔτ
public final class Fruit {!
!
private final String name;!
!
private final int price;!
!
private final Country country;!
!
public Fruit(final String name, final int price, final Country country) {!
this.name = name;!
this.price = price;!
this.country = country;!
}!
!
public String getName() {!
return name;!
}!
!
public int getPrice() {!
return price;!
}!
!
public Country getCountry() {!
return country;!
}!
!
public Fruit withName(final String name) {!
return new Fruit(name, price, country);!
}!
!
public Fruit withPrice(final int price) {!
return new Fruit(name, price, country);!
}!
!
public Fruit withCountry(final Country country) {!
return new Fruit(name, price, country);!
}!
!
// toStringͱ͔!
// equalsͱ͔!
// hashCodeͱ͔!
!
public static Builder builder() {!
return new Builder();!
}!
!
public static class Builder {!
!
private String name;!
!
private int price;!
!
private Country country;!
!
public Fruit build() {!
return new Fruit(name, price, country);!
}!
!
public Builder name(final String name) {!
this.name = name;!
return this;!
}!
!
public Builder price(final int price) {!
this.price = price;!
return this;!
}!
!
public Builder country(final Country country) {!
this.country = country;!
return this;!
}!
}!
}
data public class Fruit(!
val name: String,!
val price: Int,!
val country: Country!
)