• About
  • Privacy Policy
  • Disclaimer
  • Contact
TomorrowPosT
  • Home
  • Computers
    • Gaming
  • Gear
    • Apple
    • Mobile
  • Microsoft
    • Software & Apps
  • Review
    • Security
  • Tech for Business
  • Tech News
  • News
  • Termini e condizioni
No Result
View All Result
  • Home
  • Computers
    • Gaming
  • Gear
    • Apple
    • Mobile
  • Microsoft
    • Software & Apps
  • Review
    • Security
  • Tech for Business
  • Tech News
  • News
  • Termini e condizioni
No Result
View All Result
TomorrowPost
No Result
View All Result

Scrivere DTOS con Java8, Lombok e Java14+

Michele by Michele
23/03/2025
Home Software & Apps
Condividi su FacebookCondividi su WhatsappCondividi su Twitter


In questo articolo, cercherò di aiutarti a capire come le versioni aggiornate di Java e l’utilizzo del set giusto di librerie possano ridurre gli sforzi di sviluppo e il codice della piastra della caldaia. Nelle organizzazioni, tendiamo a utilizzare una versione per un periodo di tempo più lungo poiché le versioni di aggiornamento del software program non sono rapide e richiedono check estesi.

Tuttavia, a causa di questo pensiero, in genere perdiamo l’utilizzo di nuove funzionalità disponibili con nuove versioni poiché i fornitori di software program aggiornano continuamente le loro funzionalità.

Prendiamo l’esempio della scrittura di DTOS (oggetto di trasferimento dati). In Java, per archiviare i dati che verranno passati su diversi livelli, creiamo oggetti dati chiamati Dtos. Scrivere un DTO corretto comporta inclusi i seguenti elementi in una classe.

  1. Definizione del campo dati
  2. Getter e setter
  3. Costruttori parametrizzati
  4. Se costruisci un oggetto complesso, allora utilizzando un modello di costruttore
  5. Scrivere il metodo toString
  6. Override Equals e Hashcode

Ora, considera tutti i punti di cui sopra e vedi come venivano scritti i DTO e ora, come possono essere raggiunti con meno codice usando librerie e Java 14+.

Usando la semplice classe Java (prima di Java 14 e Lombok)

import java.util.Objects;

/**
 * Represents the main points of an worker.
 */
public class EmployeeDetail {
    non-public String employeeId;
    non-public String employeeName;
    non-public String employeeAddress;

    /**
     * Constructs an EmployeeDetail with the required ID and identify.
     *
     * @param employeeId the ID of the worker
     * @param employeeName the identify of the worker
     */
    public EmployeeDetail(String employeeId, String employeeName) {
        this.employeeId = employeeId;
        this.employeeName = employeeName;
    }

    /**
     * Units the deal with of the worker.
     *
     * @param employeeAddress the deal with of the worker
     * @return the up to date EmployeeDetail object
     */
    public EmployeeDetail withAddress(String employeeAddress) {
        this.employeeAddress = employeeAddress;
        return this;
    }

    /**
     * Returns the ID of the worker.
     *
     * @return the worker ID
     */
    public String getEmployeeId() {
        return employeeId;
    }

    /**
     * Returns the identify of the worker.
     *
     * @return the worker identify
     */
    public String getEmployeeName() {
        return employeeName;
    }

    /**
     * Returns the deal with of the worker.
     *
     * @return the worker deal with
     */
    public String getEmployeeAddress() {
        return employeeAddress;
    }

    /**
     * Signifies whether or not another object is "equal to" this one.
     *
     * @param o the reference object with which to check
     * @return true if this object is identical because the obj argument; false in any other case
     */
    @Override
    public boolean equals(Object o)  getClass() != o.getClass()) return false;
        EmployeeDetail that = (EmployeeDetail) o;
        return Objects.equals(employeeId, that.employeeId) &&
               Objects.equals(employeeName, that.employeeName) &&
               Objects.equals(employeeAddress, that.employeeAddress);
    

    /**
     * Returns a hash code worth for the item.
     *
     * @return a hash code worth for this object
     */
    @Override
    public int hashCode() {
        return Objects.hash(employeeId, employeeName, employeeAddress);
    }

    /**
     * Returns a string illustration of the item.
     *
     * @return a string illustration of the item
     */
    @Override
    public String toString() {
        return "EmployeeDetail{" +
               "employeeId='" + employeeId + ''' +
               ", employeeName="" + employeeName + "'' +
               ", employeeAddress="" + employeeAddress + "'' +
               '}';
    }
}

Qui, puoi vedere che stai quasi scrivendo tutto a partire da campi, costruttori, getter/setter e oggetti Builder, ToString e Hashcode.

Dal Biblioteca Lombok È nato, questo codice è stato ridotto a poche righe in quanto fornisce molte annotazioni, il che aiuta gli sviluppatori a ridurre il codice della piastra della scrittura come getter/setter, costruttori, toString, ecc. Prendi quanto segue, advert esempio.

Utilizzo della libreria Lombok

import lombok.*;

@Getter
@Setter
@NoArgsConstructor
@ToString
@EqualsAndHashCode
public class EmployeeDetail {
    non-public String employeeId;
    non-public String employeeName;
    non-public String employeeAddress;

    public EmployeeDetail(String employeeId, String employeeName, String employeeAddress) {
        this.employeeId = employeeId;
        this.employeeName = employeeName;
        this.employeeAddress = employeeAddress;
    }
}

Ora, il codice è stato drasticamente ridotto e ti stai concentrando solo sulla definizione dei campi richiesti e il resto delle cose viene curato da Lombok. Devi solo utilizzare l’annotazione corretta e le biblioteche faranno il resto del lavoro. Dopo aver compilato il codice, genererà tutti i metodi richiesti nella classe generata.

Ho usato Lombok per un po ‘di tempo per ridurre il codice della piastra della caldaia. Tuttavia, sono stato felicemente sorpreso di vedere Document, che è stato introdotto nelle versioni Java 14 e superiori. Attualmente sto usando Java 21 e di seguito è riportato lo snippet di codice per la scrittura di una classe equivalente come DTO (menzionata nel primo esempio).

Usando Java 21: Document Class

/**
 * Represents the main points of an worker.
 */
public report EmployeeDetail(String employeeId, String employeeName, String employeeAddress) {
}

Non è interessante? Hai appena menzionato i tuoi campi di dati in una riga e JDK si prende cura del resto delle informazioni. Qui, la classe di report genererà automaticamente i metodi del costruttore, toString (), uguali e hashcode per te e non è necessario scrivere nulla.

Ora, supponiamo che tu debba istanziare il report e ottenere i dati, devi semplicemente fare quanto segue.

public class Major {
    public static void primary(String() args) {
        EmployeeDetail worker = new EmployeeDetail("12345", "Nitesh Gupta", "XYZ");

        // Accessing the information
        String id = worker.employeeId();
        String identify = worker.employeeName();
        String deal with = worker.employeeAddress();       
    }
}

Conclusione

Il mio suggerimento sarebbe quello di avviare l’aggiornamento delle tue app con le ultime versioni Java, utilizzare le funzionalità disponibili per ridurre lo sforzo di sviluppo e scrivere codice pulito.

Codice felice!

Tags: conDTOSJava14Java8LombokScrivere
Michele

Michele

Next Post
Coinbase inizialmente presi di mira negli attacchi della catena di approvvigionamento delle azioni GitHub; 218 segreti CI/CD dei repository

Coinbase inizialmente presi di mira negli attacchi della catena di approvvigionamento delle azioni GitHub; 218 segreti CI/CD dei repository

Recommended.

Quando usare e come evitare le insidie

Quando usare e come evitare le insidie

17/03/2025
Livella veloce nelle ombre AC e più suggerimenti per la settimana

Livella veloce nelle ombre AC e più suggerimenti per la settimana

31/03/2025

Trending.

Sistemi distribuiti 101

Sistemi distribuiti 101

18/04/2025
Come spostare gli acquisti digitali tra due ID

iPhone 16 viene finalmente lanciato in Indonesia dopo un lungo divieto

14/04/2025
Pacchetti npm canaglia imitare l’API bot telegramma per piantare backoors ssh su sistemi Linux

Pacchetti npm canaglia imitare l’API bot telegramma per piantare backoors ssh su sistemi Linux

20/04/2025
Starcraft 2 hacker che costringono i giocatori a guardare video di tiro

Starcraft 2 hacker che costringono i giocatori a guardare video di tiro

23/04/2025
Distribuzione di piattaforme di intelligenza artificiale nell’istruzione superiore per risultati migliori

Distribuzione di piattaforme di intelligenza artificiale nell’istruzione superiore per risultati migliori

24/04/2025

TomorrowPost

Welcome to Tomorrow Post – your trusted source for the latest in computers, gaming, tech gear, Microsoft, software, cybersecurity, and much more! Our mission is simple: to provide technology enthusiasts, professionals, and business leaders with accurate, insightful, and up-to-date information that helps them navigate the ever-evolving world of technology.

Categorie

  • Apple
  • Computers
  • Gaming
  • Gear
  • Microsoft
  • Mobile
  • News
  • Review
  • Security
  • Software & Apps
  • Tech for Business
  • Tech News

Recent News

Geometric Future presenta nuovi casi e accessori per PC su Computex 2025

18/05/2025
PowerBeats Professional 2 disponibile per il prezzo più basso di sempre di $ 199,95, oltre a Beats Capsule a $ 99,95 e altro ancora

PowerBeats Professional 2 in vendita per un prezzo file di $ 199,95 questo advantageous settimana

17/05/2025
  • About
  • Privacy Policy
  • Disclaimer
  • Contact

© 2025- https://tomorrowpost.net- All Rights Reserved

No Result
View All Result
  • Home
  • Computers
    • Gaming
  • Gear
    • Apple
    • Mobile
  • Microsoft
    • Software & Apps
  • Review
    • Security
  • Tech for Business
  • Tech News
  • News
  • Termini e condizioni

© 2025- https://tomorrowpost.net- All Rights Reserved