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.
- Definizione del campo dati
- Getter e setter
- Costruttori parametrizzati
- Se costruisci un oggetto complesso, allora utilizzando un modello di costruttore
- Scrivere il metodo toString
- 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!