Un Record , non è altro che un tipo di classe che memorizza i dati. È la stessa idea di costruzione simile a un JavaBean , ha il costruttore, gli attributi e i metodi di accesso. Tuttavia, invece di consentire qualsiasi modifica, la classe è immutabile. Ha anche i metodi equals , hashCode e toString ().
Alcuni buoni vantaggi da considerare quando si utilizzano i record :
Immagina di avere una classe Usercon nome e password come attributi. Questa implementazione sarebbe necessaria:
import java.util.Objects;
public class User {
private String name;
private String password;
public User(String name, String password) {
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return name.equals(user.name) && password.equals(user.password);
}
@Override
public int hashCode() {
return Objects.hash(name, password);
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
public record User(String name, String password){}
User user = new User("admin", "45454*aa");
String name = user.name();
Tra le diverse possibilità di utilizzo dei record , un'utilità sarebbe quella di serializzare e deserializzare le classi che rappresentano i carichi utili di comunicazione, detti anche DTO .
Testando Jackson nella versione 2.13.0 è ora possibile utilizzare la risorsa senza alcuna configurazione specifica.
@Test
void shouldDeserializeCorrectly() throws Exception {
String json =
"""
{
"name": "willyancaetano",
"password": "jK%onD2B2Pvt"
}
""";
User user = objectMapper.readValue(json, User.class);
assertEquals("willyancaetano", user.name());
assertEquals("jK%onD2B2Pvt", user.password());
}
@Test
void shouldSerializeCorrectly() throws Exception {
User user = new User("admin", "$JJMwSYskkN^");
String json = objectMapper.writeValueAsString(user);
assertTrue(json.contains("admin"));
assertTrue(json.contains("$JJMwSYskkN^"));
}
Ci sono possibilità di utilizzare i record in altri scenari, come ad esempio:
Quando fai una richiesta a facebook.com, il tuo computer cerca il nome di dominio per tradurre quel nome di dominio in un indirizzo IP in modo che il tuo computer possa effettuare quella connessione.
Introduzione Apache Kafka è una piattaforma di streaming distribuita open source che gestisce lo streaming di dati in tempo reale su larga scala, a throughput elevato e con tolleranza ai guasti. Il sistema si basa su un modello di pubblicazione-sottoscrizione in cui i produttori pubblicano messaggi negli argomenti e i consumatori si iscrivono a tali argomenti per consumare i messaggi.
Ciò che è vecchio ora è di nuovo nuovo e ciò che prima era la cosa luccicante e scintillante ora sembra noioso. Non sto parlando dei jeans JNCO che stanno tornando in auge tra i ragazzi fighi del centro insieme ad altre mode di fine anni '90.
Qualsiasi mente razionale sa che i circoli politici e mediatici sono dominati dalla sinistra, anche dall'estrema sinistra, uno stato di cose che crea uno squilibrio nel discorso politico. Nel campo della religione, questo squilibrio è chiaramente visibile: giornali e reti di sinistra non si affrettano a difendere la fede cristiana.
La scorsa settimana ho notato un comunicato stampa, inviato tramite PressGazette (un sito Web di notizie sui media britannici). L'articolo annunciava che Acast, la società di hosting e pubblicità di podcast di Scandi, avrebbe guidato un consorzio di editori "probabilmente i più influenti" nel podcasting.
"Ehi Siri, suona Me Dive di Olivia Dean." Era maggio 2021 quando ho iniziato il mio tirocinio presso la Future Academy Africa ad Akure, in Nigeria.