Skip to main content

Java Record

Record Classes

Java record Classes (introduced first in Java 14) helps writing less boiler plate codes and maintain objects which are immutable by design.
In Java, a record is a special type of class declaration aimed at reducing the boilerplate code. Java records were introduced with the intention to be used as a fast way to create data carrier classes, i.e. the classes whose objective is to simply contain data and carry it between modules, also known as POJOs (Plain Old Java Objects) and DTOs (Data Transfer Objects). Record was introduced in Java SE 14 as a preview feature. Let us first see a simple Record and equivalent class.
public record AuthTokenRecord(String token, LocalDateTime dateExpiary) {

	public AuthTokenRecord {
		if (token == "" || token == null)
			throw new java.lang.IllegalArgumentException(String.format("Invalid token: %f", token));
	}

}
The above record is equivalent to the following class definition.
public final class AuthTokenClass {
    private final String token;
    private final LocalDateTime dateExpiary;
    private final LocalDateTime dateCreated;
	public AuthTokenClass(String token, LocalDateTime dateExpiary, LocalDateTime dateCreated, LocalDateTime date2) {
		this.token = token;
		this.dateExpiary = date2;
		this.dateCreated = dateCreated;
	}


	public String getToken() {
		return token;
	}


	public LocalDateTime getDateExpiary() {
		return dateExpiary;
	}


	public LocalDateTime getDateCreated() {
		return dateCreated;
	}
	
}

Record automatically generates the followings

  • A public constructor
  • getters,
  • toString hashcode and equals methods

Restrictions on Records

  • Records cannot extend any class
  • Records cannot declare instance fields (other than the private final fields that correspond to the components of the record component list); any other declared fields must be static
  • Records cannot be abstract; they are implicitly final
  • The components of a record are implicitly final

When should we use Records or JavaBeans

The primary use case of the record is to hold immutable data. For example if we want to create immutable objects like Currency(code,name) or AuthToken(token,expiary) etc that once created will not be changed. Benefits for developers is writing less code and making sure the data is properly encapsulated.

Comments

Popular posts from this blog

Ollama - Run AI Language models locally

In today’s rapidly evolving AI landscape, privacy, control, and performance are more important than ever. Ollama emerges as a powerful solution, enabling developers and AI enthusiasts to run open-source large language models (LLMs) locally on their own systems. Whether your goal is building AI-powered applications or exploring AI capabilities, Ollama provides a versatile platform tailored to diverse needs. What is Ollama? Ollama is an open-source platform designed to facilitate the local execution of LLMs . By running models directly on your hardware, Ollama ensures full data control , enhanced privacy , and reduced reliance on cloud services . Key Features 1. Local Model Execution Ollama supports running a variety of LLMs—including LLaMA 2, Mistral, and Phi-2 —directly on your machine. This eliminates the need for internet connectivity, keeping your data private and secure . 2. Cross-Platform Compatibility The platform works across macOS, Windows, and Linux , providing f...

Confusion Matrix

Confusion Matrix A confusion matrix is a performance measurement tool for classification problems. It is used to evaluate the accuracy of a classification, particularly in terms of how well it predicts different classes. The matrix compares the predicted classifications to the actual (true) classifications. A typical confusion matrix for a binary classification problem is a 2x2 table, with the following structure: To understand and utilize confusion matrix we need to understand the following terms. As some of the matrices that are calculated will be using those terms. Key Terms: True Positive (TP) : The number of positive instances that were correctly classified as positive.  True Negative (TN): The number of negative instances that were correctly classified as negative.  False Positive (FP): The number of negative instances that were incorrectly classified as positive (also called a Type I error).  False Negative (FN) : The number of positive instances that wer...

Windows Failure to Y2k

Some of the recent software failures Bits and bytes are now part of billions of lives. As we get more and more involved with software and software related product and services around us the more it becomes important to safe guard those. Today after the microsoft outage I thought to write a note about some of the failures that we all encounted. Bits and bytes are now part of billions of lives. As we get more and more involved with software and software related product and services around us the more it becomes important to safe guard those. Following are some of the software worlds failures that was realized as a developer or user etc. Following are some of the software worlds failures that was realized as a developer or user etc. Y2k Problem - 2000 To save memory and storage space, dates are often recorded using only the last two digits of the year (e.g., "99" for 1999 or 24 as 2024 etc.). As the year 2000 was approaching, there was concern that systems would interp...