Skip to content

Data Class

Immutable Class Since Java 17

Application.java

java
class Pokemon {
  private int id;
  private String name;
  private String type;

  private Pokemon(int id, String name, String type) {
    this.id = id;
    this.name = name;
    this.type = type;
  }

  public void setId(int id) {
    this.id = id;
  }

  public void setName(String name) {
    this.name = name;
  }

  public void setType(String type) {
    this.type = type;
  }

  @Override
  public String toString() {
    return "{ " + "id: " + id + ", name: " + name + ", type: " + type + " }";
  }
}

class Application {
  public static void main(String[] args) {
    Pokemon pkmn = new Pokemon(25, "Pikachu", "Electric");
    System.out.println(pkmn.toString()); // { id: 25, name: "Pikachu", type: "Electric" }
  }
}

ApplicationWithRecord.java

java
record Pokemon(int id, String name, String type) {
  @Override
  public String toString() {
    return "{ " + "id: " + id + ", name: " + name + ", type: " + type + " }";
  }
}

class ApplicationWithRecord {
  public static void main(String[] args) {
    Pokemon pkmn = new Pokemon(25, "Pikachu", "Electric");
    System.out.println(pkmn.toString()); // { id: 25, name: "Pikachu", type: "Electric" }
  }
}

Released under the MIT License.