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! )